android canvas探究

protected void onDraw(Canvas canvas) {
	// TODO Auto-generated method stub
	super.onDraw(canvas);

	//构造两个画笔,一个红色,一个绿色
	Paint paint_green = generatePaint(Color.GREEN, Style.STROKE, 3);
	Paint paint_red   = generatePaint(Color.RED, Style.STROKE, 3);

	//构造一个矩形
	Rect rect1 = new Rect(0,0,400,220);

	//在平移画布前用绿色画下边框
	canvas.drawRect(rect1, paint_green);

	//平移画布后,再用红色边框重新画下这个矩形
	canvas.translate(100, 100);
	canvas.drawRect(rect1, paint_red);

}
private Paint generatePaint(int color,Paint.Style style,int width)
{
	Paint paint = new Paint();
	paint.setColor(color);
	paint.setStyle(style);
	paint.setStrokeWidth(width);
	return paint;
}

代码分析:

这段代码中,对于同一个矩形,在平移画布前利用绿色画下矩形边框,在平移后,再用红色画下矩形边框。大家是不是会觉得这两个边框会重合?实际结果是这样的。

前后调用的是一个canvas对象,但是,这个对象并不是直接被图形赋值,这个对象实际上是生出用来画图的“图层”,但其本身不是,每次调用draw等函数,便完成了一个图层,所以尽管调用的是canvas同一个对象,实际上调用的是不同的图层

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-05 23:39:59

android canvas探究的相关文章

Android Camera探究之路——起步

Android Camera探究之路--起步 Camera在手机中有着举足轻重的地位,无论是二维码还是照片.识别.都离不开摄像头,本文将对Android中的Camera进行全面解析. 权限镇楼: <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE&

Android Canvas save() restore()

Android Canvas save() restore()

Android canvas clip 参数解释

Android 操作Canvas时,可以对一些区域进行多次的操作(包括与.或.非.异或等),示例代码如下 canvas.save(); canvas.translate(10, 310); canvas.clipRect(0, 0, 60, 60); canvas.clipRect(40, 40, 100, 100, Region.Op.XOR); 第二次的Rect与第一次Rect的异或. drawScene(canvas); canvas.restore(); 最后一个参数有多个选择,分别是:

【转】Android Canvas的save(),saveLayer()和restore()浅谈

Android Canvas的save(),saveLayer()和restore()浅谈 时间:2014-12-04 19:35:22      阅读:1445      评论:0      收藏:0      [点我收藏+] save()  saveLayer()  restore() 1.在自定义控件当中你onMeasure和onLayout的工作做完成以后就该绘制该控件了,有时候需要自己在控件上添加一些修饰来满足需求 复写onDraw(Canvas canvas),其中Canvas就像是

Android Canvas绘制

public class DrawView extends View { public DrawView(Context context) {  super(context); } @Override protected void onDraw(Canvas canvas) {  super.onDraw(canvas);  /*   * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形   * drawLine

【转】Android Canvas绘图详解(图文)

转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡在网上的日子 发表于 2012-12-12 20:29 第 63165 次阅读 Canvas,android 15 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳

Android SingleTask 探究

Android 4种启动模式来说,用法说明此处不再提及主要介绍SingleTop,SingleTask相关的问题 说明 先分析 官方文档 中的一段话: As shown in the table above, standard is the default mode and is appropriate for most types of activities. SingleTop is also a common and useful launch mode for many types of

Android Canvas绘图详解(图文) - 泡在网上的日子

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

Android Canvas绘图详解(图文)

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章. 大 部分2D使用的api都在android.graphics和android.graphics.drawabl