Android中canvas rotate中心点问题图解
2015-12-07 10:49
573 查看
第一步平移:
canvas.translate(200, 100);
第二步旋转90度
(注意:x 和 y 坐标会一同旋转)
canvas.rotate(90);
第三步向x轴移动-100
canvas.translate(-100, 0);
第四步在x轴移动-100的基础上,向y轴移动200-图片高度
canvas.translate(-100, 200-图片高度);
注意点:
1.旋转是针对于x和y坐标的(0,0)点的,x和y轴是会旋转的,
还有一个旋转方法是canvas.rotate(90,x,y);就是绕x,y点旋转
2.图片永远显示在canvas中的,图片相对于canvas是没有任何变化的
旋转90度示例代码:
[java] view
plaincopy
Bitmap prograss_bg = BitmapFactory.decodeResource(getResources(), R.drawable.prograss_bg);
int x = prograss_bg.getWidth();
int y = prograss_bg.getHeight();
canvas.translate(x, y);
canvas.rotate(90);
canvas.translate(-y, x-y);
canvas.drawBitmap( prograss_bg , 0, 0,new Paint());
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
注意:
void rotate(float degrees); // 旋转中心点(0, 0)
void rotate(float degrees, float px, float py); // 旋转中心店为(px, py)
canvas.translate(200, 100);
第二步旋转90度
(注意:x 和 y 坐标会一同旋转)
canvas.rotate(90);
第三步向x轴移动-100
canvas.translate(-100, 0);
第四步在x轴移动-100的基础上,向y轴移动200-图片高度
canvas.translate(-100, 200-图片高度);
注意点:
1.旋转是针对于x和y坐标的(0,0)点的,x和y轴是会旋转的,
还有一个旋转方法是canvas.rotate(90,x,y);就是绕x,y点旋转
2.图片永远显示在canvas中的,图片相对于canvas是没有任何变化的
旋转90度示例代码:
[java] view
plaincopy
Bitmap prograss_bg = BitmapFactory.decodeResource(getResources(), R.drawable.prograss_bg);
int x = prograss_bg.getWidth();
int y = prograss_bg.getHeight();
canvas.translate(x, y);
canvas.rotate(90);
canvas.translate(-y, x-y);
canvas.drawBitmap( prograss_bg , 0, 0,new Paint());
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
注意:
void rotate(float degrees); // 旋转中心点(0, 0)
void rotate(float degrees, float px, float py); // 旋转中心店为(px, py)
相关文章推荐
- RadioButton实现自动换行的效果
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android studio 快捷键
- Android引用XML中的arrays 资源
- 【原】Android高德地图开发——准备阶段
- Android内核驱动程序的编写和编译过程
- android-service系列之断点续传下载
- 【Android】如何将其他项目作为Lib
- android(28)(intent隐式意图)
- android launcher 日历icon显示星期
- Mac下安装配置phonegap开发环境 (涉及android sdk配置)
- android launcher 日历icon显示日期
- Android activity任务栈
- Android Studio默认快捷键
- Android处理崩溃的一些实践
- android 点击屏幕 关闭输入弹出框或键盘
- android(27)(显示意图之打开浏览器)
- Android 设置控件是否可见
- Android5.x Toolbar和Palette应用解析
- Android EditText 光标选择 clickablespan 文字触摸