2012-09-26 54 views
2

我想围绕一个点旋转图像视图。 imageview是指可绘制资源。围绕某个角度旋转一个图像视图

然后,我将imageview转换为位图,以便我可以在画布上绘制它。

随着this的帮助下,我能够绘制在画布

imageView = new ImageView(this); 
    imageView.setImageResource(drawable); 
    imageView.setDrawingCacheEnabled(true); 
    imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
      MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
    imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); 
    imageView.buildDrawingCache(true); 
    Matrix matrix = new Matrix(); 
    matrix.setRotate(30,x, y); 
    canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint); 

矩阵是不工作的绘制。图像不在x,y点旋转。

任何人都可以告诉我我的代码中缺少什么吗?

回答

0

1st将矩阵转换(固定)在该点,然后分别与该点一起旋转。

Matrix matrix = new Matrix(); 
matrix.setTranslate(x,y); 
matrix.postRotate(30,x, y); 
canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint);