canvas.save() canvas.restore() 作用

这里canvas.save();和canvas.restore();是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的。这里稍微解释一下,

当我们对画布进行旋转,缩放,平移等操作的时候其实我们是想对特定的元素进行操作,比如图片,一个矩形等,但是当你用canvas的方法来进行这些操作的时候,其实是对整个画布进行了操作,那么之后在画布上的元素都会受到影响,所以我们在操作之前调用canvas.save()来保存画布当前的状态,当操作之后取出之前保存过的状态,这样就不会对其他的元素进行影响

he

这是有西面

protected void onDraw(Canvas canvas) {

        canvas.drawColor(Color.WHITE);

        Paint p = new Paint();
        float y = 10;

       canvas.save();
        canvas.scale(5f, 5f);
        p.setColor(Color.RED);
        canvas.drawBitmap(mBitmap, 10, y, p);
        y += mBitmap.getHeight() + 10;
        canvas.restore();
        canvas.drawBitmap(mBitmap2, 10, y, p);
        y += mBitmap2.getHeight() + 10;

	}

只有白色的图像进行了放大

有下面的代码实现

@Override
	protected void onDraw(Canvas canvas) {

        canvas.drawColor(Color.WHITE);

        Paint p = new Paint();
        float y = 10;

       //canvas.save();
        canvas.scale(5f, 5f);
        p.setColor(Color.RED);
        canvas.drawBitmap(mBitmap, 10, y, p);
        y += mBitmap.getHeight() + 10;
        //canvas.restore();
        canvas.drawBitmap(mBitmap2, 10, y, p);
        y += mBitmap2.getHeight() + 10;

	}

白色和红色的图片收到了影响

canvas.save() canvas.restore() 作用

时间: 2024-11-06 23:55:21

canvas.save() canvas.restore() 作用的相关文章

HTML5 canvas save和restore方法讲解

源:http://www.silverlightchina.net/html/HTML_5/study/2012/0326/14828.html save()和restore()方法是绘制复杂图形必不可少的方法.它们分别是用来 保存和恢复 canvas 状态的,都没有参数. Canvas 状态是以堆(stack)的方式保存的,每一次调用 save 方法,当前的状态就会被推入堆中保存起来.这种状态包括:当前应用的变形(即移动,旋转和缩放,见下): strokeStyle, fillStyle, g

canvas.save()和canvas.restore()作用

文章转自:oney139: 最终所有权归作者所有. 链接:http://blog.csdn.net/oney139/article/details/8143281. canvas.save()和canvas.restore():是两个相互匹配出现的,作用是用来存储画布的状态和取出保存的状态的.这里稍微解释一下. 当我们对画布进行旋转,缩放,平移等操作的时候其实是对特定的元素进行操作,比如图片,一个矩形等.但是当你用canvas的方法来进行这些操作的时候,其实是对整个画布进行了操作,那么之后在画布

[ html canvas save restore ] canvas绘图 save restore 属性理论讲解

Canvas API详解(Part 1) 分类 Android 基础入门教程 本节引言: 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在 8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层. clipXXX方法族:在当前的画图区域裁剪(clip)出一个新的画图

android_浅析canvas的save()和restore()方法

[java] view plain copy <span style="font-size:18px;"> </span> [java] view plain copy <span style="font-size:18px;"></span> 绘图之前,首先需要调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上!Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进

Canvas的save和restore

在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢? ? save:用来保存Canvas的状态.save之后,可以调用Canvas的平移.放缩.旋转.错切.裁剪等操作. ? restore:用来恢复Canvas之前保存的状态.防止save后对Canvas执行的操作对后续的绘制有影响. sa

canvas 中save和restore的用法

在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢? ? save:用来保存Canvas的状态.save之后,可以调用Canvas的平移.放缩.旋转.错切.裁剪等操作. ? restore:用来恢复Canvas之前保存的状态.防止save后对Canvas执行的操作对后续的绘制有影响. sa

Android中canvas.save()和canvas.restore()的使用

自己定义控件时经常遇到重写View的Ondraw()方法,Ondraw()方法经常设计到save()和restore()这两个方法.这两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的. 详细作用例如以下: 1.save():用来保存Canvas的状态,save()方法之后的代码,能够调用Canvas的平移.放缩.旋转.裁剪等操作! 2.restore():用来恢复Canvas之前保存的状态,防止save()方法代码之后对Canvas运行的操作.继续对兴许的绘制会产生影响.通过该方法

[ html canvas save restore ] canvas绘图 save restore 属性实例演示

解析: 我们可以在做平移变换之前将当前canvas的状态进行保存,其实Canvas为 我们提供了图层(Layer)的支持,而这些Layer(图层)是按"栈结构"来进行管理的 当我们调用save()方法,会保存当前Canvas的状态然后作为一个Layer(图层),添加到Canvas栈中, 另外,这个Layer(图层)不是一个具体的类,就是一个概念性的东西而已! 而当我们调用restore()方法的时候,会恢复之前Canvas的状态,而此时Canvas的图层栈 会弹出栈顶的那个Layer,

Android canvas.save()和canvas.restore()的理解

群里一哥们面试的时候被问到canvas.restore()的作用是什么,与之常常被一起问到的是canvas.save()的作用是什么.最近在上海开发航运项目,忙里偷闲总结一下两个方法的用法,以后也将在博客中记录面试中可能会被问到的一些其他问题. Canvas相当于一块画布,该类中常用的方法如下: drawRect(RectF rect, Paint paint) drawPath(Path path, Paint paint) drawBitmap(Bitmap bitmap, Rect src