Android canvas rotate方法的理解
2016-10-20 11:36
239 查看
Canvas 是一个画布是Android系统提供的一个绘图工具类,可以画各种想要的效果,Canvas的获得有两个方法
第一种获取方法在View的ondraw(Canvas canvas)方法中通过参数的方式拿到
第二张获取方法mBitmap = Bitmap.createBitmap(500,500,
Bitmap.Config.ARGB_8888); mBitmapCanvas = new
Canvas(mBitmap);
官方推荐第一种方式获取
引用部分代码片段:
![](https://img-blog.csdn.net/20161020114806552?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
解释一下首先坐标原点是在(0,0)画了一个矩形绿色的;
然后旋转45度画了一个红色矩形
然后旋转20度画了一个蓝色矩形
关于canvas的操作有人说是移动了画布canvas本身,有人说是改变了临时画图坐标系个人认为理解成改变临时坐标系是更容易理解和接受的。
如果理解成画布旋转那么之前画好的是不是也应该跟着旋转了事实上是没有旋转的,而理解成改变了参考坐标系就好理解了,我们还是按照
我们正常的画图方式,只是这个时候我的参考坐标不一样了。
所以得到的效果从canvas画布来看我的操作和之前没有任何变化,还是简单的画矩形
从手机屏幕来看就发生了变化.
还有一点值得注意的是每次参考坐标的变化都是依赖上一次坐标变化的操作是叠加的结果
第一种获取方法在View的ondraw(Canvas canvas)方法中通过参数的方式拿到
第二张获取方法mBitmap = Bitmap.createBitmap(500,500,
Bitmap.Config.ARGB_8888); mBitmapCanvas = new
Canvas(mBitmap);
官方推荐第一种方式获取
引用部分代码片段:
private int width=600; private int height=400; private void rotate(Canvas canvas) { Paint paint = new Paint(); paint.setColor(getResources().getColor(R.color.pp_main_bg)); paint.setStrokeWidth(20); paint.setStyle(Paint.Style.STROKE); canvas.drawRect(0, 0, width, height, paint); canvas.rotate(45); paint.setColor(getResources().getColor(R.color.red)); canvas.drawRect(0, 0, width, height, paint); canvas.rotate(20); paint.setColor(getResources().getColor(R.color.green)); canvas.drawRect(0, 0, width, height, paint); }
解释一下首先坐标原点是在(0,0)画了一个矩形绿色的;
然后旋转45度画了一个红色矩形
然后旋转20度画了一个蓝色矩形
关于canvas的操作有人说是移动了画布canvas本身,有人说是改变了临时画图坐标系个人认为理解成改变临时坐标系是更容易理解和接受的。
如果理解成画布旋转那么之前画好的是不是也应该跟着旋转了事实上是没有旋转的,而理解成改变了参考坐标系就好理解了,我们还是按照
我们正常的画图方式,只是这个时候我的参考坐标不一样了。
所以得到的效果从canvas画布来看我的操作和之前没有任何变化,还是简单的画矩形
从手机屏幕来看就发生了变化.
还有一点值得注意的是每次参考坐标的变化都是依赖上一次坐标变化的操作是叠加的结果
相关文章推荐
- android绘图canvas的sava、restore、rotate以及若干问题,canvas绘图的理解
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android Canvas rotate()和translate()两个方法的研究
- Android Canvas rotate()和translate()两个方法的研究
- Android开发之Canvas rotate方法释疑
- android中对Canvas.drawCircle()方法的理解
- Android画布canvas rotate,translate的理解
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android 对canvas的translate()方法的理解
- Android之Canvas.drawCircle()方法的理解
- 理解Canvas的save()和restore()方法
- android canvas 常用的一些方法总结
- android_浅析canvas的save()和restore()方法
- 对Android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
- Android Canvas 方法总结
- android Canvas save和restore方法
- Canvas之translate、scale、rotate、skew方法讲解!
- android canvas rotate 旋转的一些总结(旋转的一些注意点)
- android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用