刚刚开始接触学习Android的同鞋们在看到工程中出现的那么多的canvas啦、paint啦等等的使用的时候,都会惊讶于由这些方法创作出来的perfect界面,但同时也会对这些方法的使用感到困惑,他们大多时间他们都一块儿出现,到底他们是个什么样的关系?又该怎样用他们呢?
我们想象一个画面:一个小孩儿在一块画板上画画(虽然画的是啥咱不知到啦~~~)
在Android中,Canvas其实就相当与那小孩儿画板上的那块画布啦!(网上大多都这样解释,但是我觉得还不是很准确,因为这块画布不仅仅就只是在那边随你怎么画啦,它会给你很多帮助的哟,比如你要画矩形的画,就不用自己去找三角板啊啥的了,直接拿它的“模板——drawRect(RectF rect, Paint paint)”过来用就可以啦,只要改改参数就OK哈~~~)他主要实现屏幕的绘制,包括配合Matrx矩阵实现的图像旋转、剪裁以及选取等功能。Canvas类中有很多实用的方法,列举部分如下:
void drawRect(RectF rect, Paint paint) //绘制区域,参数一为RectF一个区域
void drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径对象
void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在 canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。
void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint画刷对象。
void drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。
void drawText(String text, float x, float y, Paint paint) //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。
void drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) //在路径上绘制文本,相对于上面第二个参数是Path路径对象
再来看看paint哈~在上面列举的canvas类中的方法中也可以看到出现了很多次的paint,再回到那个画画的小孩儿,其实这边的paint就相当于那个小孩儿手中的画图工具——也就是画笔喽^_^ 这个画图工具既然是那个小孩儿的,那肯定也就可以由它的主人(那个小屁孩儿)去选择他喜欢的颜色、粗细、材质等等啦~~~~下面也列举部分paint常用方法如下:
void setARGB(int a, int r, int g, int b) 设置Paint对象颜色,参数一为alpha透明通道
void setAlpha(int a) 设置alpha不透明度,范围为0~255
void setAntiAlias(boolean aa) //是否抗锯齿
void setColor(int color) //设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义
void setFakeBoldText(boolean fakeBoldText) //设置伪粗体文本
void setLinearText(boolean linearText) //设置线性文本
PathEffect setPathEffect(PathEffect effect) //设置路径效果
Rasterizer setRasterizer(Rasterizer rasterizer) //设置光栅化
Shader setShader(Shader shader) //设置阴影
void setTextAlign(Paint.Align align) //设置文本对齐
void setTextScaleX(float scaleX) //设置文本缩放倍数,1.0f为原始
void setTextSize(float textSize) //设置字体大小
Typeface setTypeface(Typeface typeface) //设置字体,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。
void setUnderlineText(boolean underlineText) //设置下划线
最后最后,再提醒一下哈,canvas和paint都可以在onraw中直接使用的哟~~~
转载自:http://blog.csdn.net/listening_music/article/details/6859229
分享到:
相关推荐
Android中使用Canvas和Paint绘制一个安卓机器人示例代码
android利用Paint在Canvas上实现竖排写字
android中canvas、paint绘图,主要用于学习canvas、paint绘图
该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651
android 自定义view(Paint和Canvas),安卓自定义View,安卓自定义。
最近学到自定义view,也是涉及到了canvas、paint、path的使用,此内容比较简单。 此三者一般会在自定义view的onDraw()中用到: canvas:决定view的布局(位置,画布颜色,形状) paint:决定view的属性(颜色,字体...
自定义view:简单了解Paint常用设置,Canvas的常用方法;
android 画图 bitmap drawable canvas paint
使用文档中介绍了Canvas和Paint的方法介。使用方便,适合开发者
Android 自定义Paint画笔 canvas绘图例子,本例子中所用到的方法继承自android.view.View,是一个自定义View的范例,同时可学习画笔的定义: Paint paint;//画笔 public MyView(Context context) {//构造器 ...
安卓撕衣服,用Bitmap,Canvas,Paint实现的
Android Paint画一个方框矩形,要使用到触笔事件及线程的相关操作,绘制绿色实心矩形和黄色的方框矩形: /* 同样是设置颜色 */ mPaint.setColor(Color.rgb(255, 0, 0)); /* 提取颜色 */ Color.red(0xcccccc)...
绘图基础Canvas+Path+Paint
很多网友刚刚开始学习Android平台,对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap、Canvas相关的都有所变化。...
在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式...canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)); eg: im
Android 关于Canvas和Paint的API Demo.
Paint类 *Paint类代表画笔,用来描述图形的... *通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重写它的onDraw方法, *然后在显示绘图的Activity中添加该视图 实现此实例的xml文件的
Android 利用Canvas,Paint 绘制 散点图,中文注释很清楚,一目了然,很容易懂
Android的Canvas和Paint对象的使用实例。 Canvas类主要实现了屏幕的绘制过程