您的位置:首页 > 移动开发 > Android开发

Android中canvas rotate中心点问题图解

2015-12-07 10:49 483 查看
第一步平移:

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: