<Android>画布的移动和翻转
2015-08-27 21:44
344 查看
Android画布翻转是个利器,尤其在图像处理上,不需要数组的转置颠倒一堆线性变化就可以轻松实现原点的改变。
就像酱紫,开始的时候,画布妹妹是和显示区哥哥重叠在一起的,默契的就像一个人一样,三观一致,出发点统一在左上角。我们画的图像都是在画布上的,呈现在显示区域中。此时在画布上画一个进度bar是这个效果的。
如果想要得到一个竖向的bar,那我们就来翻转画布,首先逆时针翻转90°,得到下图
这时画布妹妹和显示区哥哥的世界已经不是同一个坐标系了
它们的世界有了分歧,为了使它们看到的世界是同一个世界,画布妹妹还要相对它的坐标原点负向移动一个显示区的getHeight,完毕。
控件所在的画布转换完毕,我们得到了一个竖向的控件。代码实现为:
就像酱紫,开始的时候,画布妹妹是和显示区哥哥重叠在一起的,默契的就像一个人一样,三观一致,出发点统一在左上角。我们画的图像都是在画布上的,呈现在显示区域中。此时在画布上画一个进度bar是这个效果的。
如果想要得到一个竖向的bar,那我们就来翻转画布,首先逆时针翻转90°,得到下图
这时画布妹妹和显示区哥哥的世界已经不是同一个坐标系了
它们的世界有了分歧,为了使它们看到的世界是同一个世界,画布妹妹还要相对它的坐标原点负向移动一个显示区的getHeight,完毕。
控件所在的画布转换完毕,我们得到了一个竖向的控件。代码实现为:
protected synchronized void onDraw(Canvas canvas) { canvas.rotate(-90); canvas.translate(-getHeight(),0); super.onDraw(canvas); }
相关文章推荐
- Android ImageView
- Android学习心得(15) --- Dex文件结构解析(1)
- Android Studio (Gradle)编译错误
- Android颜色对照表
- Android 线程详解
- Android不编译某个模块
- Android中Preference的使用以及监听事件分析
- Android-数据存储(Content Provider 跨应用调用数据实例)
- Android 基本控件 Dialog 对话框
- 新建 Android 测试工程
- VMware下Android x86无声音的解决办法
- android 获得后退键按事件
- 一个简单的Demo教你:Android和JS的互相调用
- android屏幕适配解决方案
- Android中ActionBar居中
- Android(java)学习笔记197:常用的对话框
- 好的android开发习惯
- Android开发:用getDrawingCache方法获取ImageView中的图像需要注意的问题
- android:installLocation简析
- 融云 Android SDK 拍照,图片选择器方案分析