1.Color(颜色)类
Android系统中颜色的常用表示方法有以下3种:
(1)int color = Color.BLUE;
(2)int color = Color.argb(150,200,0,100);
(3)在xml文件中定义颜色;
在实际应用当中,我们常用的颜色有以下一些,其颜色常量及其表示的颜色如下所示:
Color.BLACK 黑色 Color.GREEN 绿色
Color.BLUE 蓝色 Color.LTGRAY 浅灰色
Color.CYAN 青绿色 Color.MAGENTA 红紫色
Color.DKGRAY 灰黑色 Color.RED 红色
Color.YELLOW 黄色 Color.TRANSPARENT 透明
Color.GRAY 灰色 Color.WHITE 白色
2.Paint(画笔)类
要绘制图形,首先得调整画笔,按照自己的开发需要设置画笔的相关属性。Pain类的常用属性设置方法如下:
setAntiAlias(); //设置画笔的锯齿效果
setColor(); //设置画笔的颜色
setARGB(); //设置画笔的A、R、G、B值
setAlpha(); //设置画笔的透明度
setTextSize(); //设置字体的尺寸
setStyle(); //设置画笔的风格(空心或实心)
setStrokeWidth(); //当画笔样式为STROKE或FILL_OR_STROKE时(空心样式时),设置笔刷的粗细度。
getColor(); //获取画笔的颜色
setDither(); //设定是否启用图像抖动处理,使绘制出来的图像更加饱满平滑清晰
setMaskFilter(); //设置滤镜效果
setShadowLayer(float radius, float dx, float dy, int shadowColor); //设置阴影,radius表示阴影的扩散半径;dx和dy表示阴影平面上的偏移值;shadowColor就不说了阴影颜色。
setStrokeCap(); //设置画笔的笔触风格 ,比如:ROUND,SQUARE和BUTT
setStrokeJoin(); //用于设置接合处的形态,比如一条线其实是由无数条小线拼接成的,拼接处的形状就由该方法指定。可选参数是:BEVEL,MITER,ROUND。
setTextSkewX(); //设置斜体文字
setTypeface(); //设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等
setUnderlineText(); //设置带有下划线的文字效果
setStrikeThruText(); //设置带有删除线的效果
3.Canvas(画布)类
画笔属性设置好之后,还需要将图像绘制到画布上。Canvas类可以用来实现各种图形的绘制工作,如绘制直线、矩形、圆等等。Canvas绘制常用图形的方法如下:
绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
绘制字符:canvas.drawText(String text, float x, float y, Paint paint);
绘制圆点:drawPoint(float x, float y, Paint paint);
绘制图形:canvas.drawBitmap(Bitmap bitmap,Rect, Rect,Paint paint);
参数一就是我们常规的Bitmap对象,
参数二是源区域,代表要绘制的bitmap 区域
参数三是目标区域,代表将要把bitmap绘制在屏幕的那个地方
参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。
绘制弧形:drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint);
参数一是RectF对象,一个矩形区域椭圆形的界限用于定义在形状、大小、电弧,
参数二是起始角(度)在电弧的开始,
参数三扫描角(度)开始顺时针测量的,
参数四是如果这是真的话,包括椭圆中心的电弧,并关闭它,如果它是假这将是一个弧线,
参数五是Paint对象;
4.自定义View的基本实现方法
首先,我们需要自定义一个类,比如MyView,继承于View类。然后,我们如果有需要自定义一些属性的话,则要在values下创建一个attrs.xml,在里面定义我们的自定义控件的自定义属性。然后,回到MyView中,重写构造方法,加载自定义属性。然后,重写类中的onMeasure()用于测量控件的宽高。然后,重写类中的onDraw()函数。最后,在onDraw()函数中使用Paint和Canvas对象绘制我们需要的图形。