android绘图框架,android 图形绘制
1.位图配置
阿尔法_9:位图用作阿尔法掩码,只有8位分配给ALH通道。没有其他颜色。
ARGB_4444:给每个颜色通道分配4位,包括Alpha通道。允许4096种不同的颜色和16个Alpha值。
ARGB_8888:给每个颜色通道分配8位,包括Alpha通道。用256个Alpha值代表1670万种不同的颜色。
RGB _ 565: 5位用于红色通道,6位用于绿色通道,5位用于蓝色通道(无Alpha通道)允许65,535种不同的颜色。这种设置几乎与ARGB_8888具有相同的高质量,但占用更少的内存空间。
2.创建画布对象
如果你想创建一个位图对象并绘制它,我们可以为它创建一个画布对象,例如
bitmap bitmap=bitmap . create bitmap((int)getWindowManager()。getDefaultDisplay()。getWidth(),(int) getWindowManager()。getDefaultDisplay()。getHeight(),位图。配置ARGB _ 8888);
Canvas canvas=新画布(位图);
3.3的使用。绘制对象
(1) Color:可以在Paint对象上传递setColor方法,传入一个Color对象。Color类定义了一系列颜色,表示为32位整数常量:
颜色。黑色彩色。蓝色彩色。红色
还可以通过Color.argb的静态方法构造特定的颜色,比如:
int mycolor=Color.argb(255,128,64,32)
实际上,也可以直接使用Paint对象的方法setARGB来指定颜色:
paint.setARGB(255,128,64,32);
(2)样式:用setStyle方法定义绘制对象样式时,需要知道是填充绘制的形状还是只画轮廓。可能的样式被定义为绘画的常数。风格类。
画画。Style.STROKE:只画出形状的轮廓。
画画。Style.FILL:仅填充形状。
画画。填充并绘制形状的轮廓。
(3)笔画的宽度:可以在Paint对象上使用setStrokeWidth方法指定。
绘制形状
(1) point:可以使用Canvas对象的drawPoint方法。
(2) Line:可以使用Canvas对象的drawLine方法。
(3)矩形:可以使用Canvas独占的drawRect方法。但是,此方法有两种重载形式。第一种是最简单的直接输入矩形的leftx,topy,rightx,bottom,另一种是通过输入rectf(rectf类用浮点值分别表示leftx,topy,rightx,bottom,从而定义一个矩形)。
RectF rectangle=new RectF(leftx,topy,rightx,bottomy);
canvas.drawRect(矩形,画图);
(4)
Ellipse:与使用RectF对象绘制矩形的方式相同,RectF对象定义椭圆的边界,即在矩形内部绘制椭圆。
RectF ovalBounds=new RectF(leftx,topy,rightx,bottomy);
canvas.drawOval(ovalBounds,paint);
(5)
Circle:可以使用Canvas对象的drawCircle方法。
(6)路径:路径是一系列直线,可以用来创建任意形状。为了绘制路径,您必须首先构造一个Path对象。Path对象可以被调用任意次,方法是使用moveTo告诉它直接移动到一个点而不进行绘制,或者使用lineTo绘制到一个点的直线,等等。
油漆油漆=新油漆();
Path p=new Path();
p.moveTo(20,20);//如果不移动到,默认情况下,绘制从(0,0)开始。
p.lineTo(100,200);
p.lineTo(200,100);
canvas.drawPath(p,paint);
5.绘制文本
我们可以通过Canvas对象的drawText方法来绘制文本,同时可以用Paint类的setTextSize来设置文本大小。
(1)内置字体:Paint类提供setTypeface方法,并传入一个Typeface对象来指定应该使用哪种字体。
Typeface类定义了很多常量来表示Android系统包含的字体,比如:typeface . monospace typeface . sans _ serif typeface . serif typeface . default typeface . default _ bold。
paint.setTypeface(字样。默认_粗体);
(2)字体样式:除了内置的字体,Typeface类还定义了一系列的样式常量。这些样式可用于通过字样中的create方法修改内置字体。这个方法的返回值是一个新的字样对象。字体样式列表:
字体。粗体字样。斜体字样。普通字样。粗体_斜体
字样serif_italic=Typeface.create(字样。衬线,字体。斜体);
paint . settypeface(serif _ italic);
(3)外置字体:安卓应用只能使用内置字体。它支持从任何TrueType字体文件创建字样对象。TrueType字体是一种标准字体,可以在各种平台上使用。
与Android内置字体完全不同的一种字体是Claude Pelletier创建的肖邦脚本字体。它面向公共领域,可以从各种来源免费下载,比如fontspace.com。
要使用这种字体,您可以下载它并将。ttf文件复制到项目的资产文件夹中。Typeface.createFromAsset方法接受AssetManager对象和文件名作为参数,其中AssetManager对象可以通过从上下文调用getAssets来获得。该方法返回一个Typeface对象,该对象可以传递给paint.setTypeface方法。
typeface chops=typeface . createfromsasset(getAssets(), Chopin script . TTF );
paint.setTypeface(印章);
(4)路径上的文本:使用的Canvas对象的drawTextOnPath方法。