屏幕坐标
屏幕上的点的坐标(x,y)表示这个点是屏幕从上往下数第y+1行,从左往右数第x+1个像素点。
屏幕左上角第一个点坐标是(0,0)。
画文字
把绘图部分的代码改为以下代码:
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setTextScaleX(2);//设置文字宽高比(2表示宽是高的2倍)
p.setTextSize(50);//设置文字高
canvas.drawText("天线宝宝之丁丁",100,200,p);
//在(100,200)位置用画笔p画一段文字"天线宝宝之丁丁"
注意第25~30行
代码
效果
注意字的位置坐标指的是字左下角的坐标。
文字可以是各国语言,各种符号,甚至emoji表情:
代码
效果
用setTextSkewX可以改为斜体:
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setTextSize(200);//设置文字高
p.setTextSkewX(-1);//设置文字倾斜度(-1表示往右斜1倍
canvas.drawText("咩",100,200,p);
p.setTextSkewX(-0.5f);//设置文字倾斜度(-0.5f表示往右斜0.5倍
canvas.drawText("咩",100,400,p);
p.setTextSkewX(0);//设置文字倾斜度(0表示不倾斜
canvas.drawText("咩",100,600,p);
p.setTextSkewX(0.5f);//设置文字倾斜度(0.5表示往左斜0.5倍
canvas.drawText("咩",100,800,p);
p.setTextSkewX(1);//设置文字倾斜度(1表示往左斜1倍
canvas.drawText("咩",100,1000,p);
代码
效果
注意小数的末尾要加个字母f来表示这是小数类型的数据。
用setTextAlign可以改对齐方式:
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setTextSize(200);//设置文字高
p.setTextAlign(Paint.Align.RIGHT);//右对齐
canvas.drawText("12345",100,200,p);
p.setTextAlign(Paint.Align.CENTER);//中对齐
canvas.drawText("12345",100,400,p);
p.setTextAlign(Paint.Align.LEFT);//左对齐
canvas.drawText("12345",100,600,p);
代码
效果
字体设置
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setTextSize(100);//设置文字高
p.setTypeface(Typeface.SERIF);//设置字体
canvas.drawText("Very Good!serif",100,200,p);
p.setFakeBoldText(true);//粗体
p.setTypeface(Typeface.SERIF);//设置字体
canvas.drawText("Very Good!serif粗",100,400,p);
p.setFakeBoldText(false);//取消粗体
p.setSubpixelText(true);//设置亚像素(让文字更清晰)
p.setTypeface(Typeface.MONOSPACE);//设置字体
canvas.drawText("Very Good!monospace清晰",100,600,p);
p.setSubpixelText(false);//取消亚像素
p.setStrikeThruText(true);//删除线
p.setTypeface(Typeface.SANS_SERIF);//设置字体
canvas.drawText("Very Good!sans_serif删除线",100,800,p);
p.setStrikeThruText(false);//取消删除线
p.setUnderlineText(true);//下划线
p.setTypeface(Typeface.DEFAULT);//设置字体
canvas.drawText("Very Good!default下划线",100,1000,p);
代码
效果
网友评论