码迷,mamicode.com
首页 > 移动开发 > 详细

android canvas探究

时间:2015-08-30 10:04:01      阅读:156      评论:0      收藏:0      [点我收藏+]

标签: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同一个对象,实际上调用的是不同的图层

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

android canvas探究

标签:android   canvas   

原文地址:http://blog.csdn.net/nimeghbia/article/details/48101299

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!