view java_MyView.java

package com.example.zhangjinming.androidgame2;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.Typeface;

import android.os.Build;

import android.view.View;

class MyView extends View {

private Paint paint;

private Path path;

public MyView(Context context) {

super(context);

paint=new Paint(Paint.ANTI_ALIAS_FLAG);

path=new Path();

}

@Override

protected void onDraw(Canvas canvas){

super.onDraw(canvas);

canvas.drawColor(Color.WHITE);

paint.setColor(Color.BLACK);

canvas.drawText("hello world",100,100,paint);

canvas.drawRect(100,100,150,150,paint);

canvas.drawText("hello world",2,8,300,100,paint);

char[] text={'h','e','l','l','o',' ','w','o','r','l','d'};

canvas.drawText(text,2,8,500,100,paint);

paint.setColor(Color.RED);

paint.setTextSize(24);

paint.setUnderlineText(true);//设置下划线

canvas.drawText("hello world",100,200,paint);

paint.setStrikeThruText(true);//设置删除线

canvas.drawText("hello world",300,200,paint);

paint.setUnderlineText(false);

canvas.drawText("hello world",500,200,paint);

paint.setStrikeThruText(false);

paint.setColor(Color.BLUE);

paint.setTextSize(18);

paint.setTypeface(Typeface.DEFAULT);//缺省字体

canvas.drawText("hello world",50,250,paint);

paint.setTypeface(Typeface.DEFAULT_BOLD);//缺省加粗字体

canvas.drawText("hello world",200,250,paint);

paint.setTypeface(Typeface.MONOSPACE);//等宽字体

canvas.drawText("hello world",350,250,paint);

paint.setTypeface(Typeface.SANS_SERIF);//非衬体

canvas.drawText("hello world",500,250,paint);

paint.setTypeface(Typeface.SERIF);//衬体

canvas.drawText("hello world",650,250,paint);

paint.setTypeface(Typeface.create(Typeface.SERIF,Typeface.BOLD));//衬体+加粗

canvas.drawText("hello world",200,300,paint);

paint.setTypeface(Typeface.create("宋体",Typeface.ITALIC));

//"宋体不存在",变成:缺省+斜体

canvas.drawText("hello world",350,300,paint);

paint.setTypeface(Typeface.createFromAsset(getContext().getAssets(),"hwcy.TTF"));

//自定义字体

canvas.drawText("hello world",500,300,paint);

paint.setColor(Color.YELLOW);

paint.setTypeface(Typeface.DEFAULT);

paint.setTextScaleX(3);//文本沿X轴缩放3倍

canvas.drawText("hello world",50,350,paint);

paint.setColor(Color.GRAY);

paint.setTextScaleX(1);

paint.setTextSkewX(-0.5f);//设置斜率,负数表示右斜,正数表示左斜

canvas.drawText("hello world",350,350,paint);

paint.setTextSkewX(0.5f);

canvas.drawText("hello world",500,350,paint);

paint.setColor(Color.BLACK);

paint.setTextSkewX(0);

paint.setTypeface(Typeface.DEFAULT_BOLD);

canvas.drawText("hello world",50,400,paint);//缺省粗体

paint.setFakeBoldText(true);

canvas.drawText("hello world",200,400,paint);//缺省粗体+仿粗体

paint.setTypeface(Typeface.DEFAULT);

canvas.drawText("hello world",350,400,paint);//仿粗体

paint.setFakeBoldText(false);

canvas.drawText("hello world",500,400,paint);//缺省

paint.setColor(Color.CYAN);

paint.setTextAlign(Paint.Align.CENTER);

canvas.drawText("hello world",canvas.getWidth()/2,450,paint);//居中对齐

paint.setTextAlign(Paint.Align.RIGHT);

canvas.drawText("hello world",canvas.getWidth()/2,500,paint);//右对齐

paint.setTextAlign(Paint.Align.LEFT);

canvas.drawText("hello world",canvas.getWidth()/2,550,paint);//左对齐

paint.setColor(Color.GREEN);

paint.setStyle(Paint.Style.STROKE);

path.addCircle(200,700,100,Path.Direction.CW);//顺时针

canvas.drawPath(path,paint);

canvas.drawTextOnPath("hello world",path,0,0,paint);

canvas.drawTextOnPath("hello world",path,180,20,paint);

//hOffset水平偏移,vOffset垂直偏移(顺时间时内向)

path.reset();

path.addCircle(600,700,100,Path.Direction.CCW);//逆时针

canvas.drawPath(path,paint);

canvas.drawTextOnPath("hello world",path,0,0,paint);

canvas.drawTextOnPath("hello world",path,180,20,paint);

//hOffset水平偏移,vOffset垂直偏移(逆时间时向外)

path.reset();

path.moveTo(100,900);

path.rCubicTo(100,-300,200,300,300,0);

paint.setColor(Color.MAGENTA);

canvas.drawTextOnPath("hello world hello world hello world" +

"hello world hello world",path,0,0,paint);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){

paint.setColor(Color.parseColor("#abcdef"));

canvas.drawTextRun("hello world",1,8,0,9,

500,850,true,paint);

}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){

paint.setColor(Color.parseColor("#fedcba"));

paint.setLetterSpacing(0.5f);//设置字符间距

canvas.drawText("hello world",500,900,paint);

paint.setLetterSpacing(0);

}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){

paint.setColor(Color.parseColor("#112233"));

paint.setFontFeatureSettings("smcp");//用CSS的方式来设置文字,此处设置为"Small"

canvas.drawText("Hello World",500,950,paint);

}

}

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值