Android可旋转ImageView

我正在尝试创建一个可旋转的ImageView,我将指定特定的角度和枢轴点,并看到它围绕该枢轴点旋转。 我试过这样的事情:

Matrix matrix = new Matrix(); matrix.postRotate(45, imageView.getWidth(), imageView.getHeight()); imageView.setScaleType(ScaleType.MATRIX); imageView.setImageMatrix(matrix); 

但是postRotate方法的参数(第二个和第三个 – 枢轴点)完全没有变化。 即使它们是0,0,它也是一样的。

所以我想创建一个ImageView,它在初始化时会旋转一定的角度。 在这个例子中45度。 我试过设置界限和工作人员..没有帮助。

我怎么做? :/

您可以使用setRotation(int)旋转ImageView;

 // rotate imageView 45 around center pivot point imageView.setPivotX(imageView.getWidth()/2); imageView.setPivotY(imageView.getHeight()/2); imageView.setRotation(45); 

参考: http : //goo.gl/WhhGM编辑:我不得不缩短链接因为a)在url中,有些浏览器不喜欢这样。

这就是我在我的应用程序中使用view.setRotation(浮动角度)的方式,希望它会有所帮助:

 //to make rotation use next code imageView.setPivotX(imageView.getWidth() / 2); imageView.setPivotY(imageView.getHeight() / 2); imageView.setRotation(45); //to reset rotate state to initial position imageView.setPivotX(imageView.getWidth() / 2); imageView.setPivotY(imageView.getHeight() / 2); imageView.setRotation(0); 

根据斯宾塞的回答

这个function对我有用。

 public static Bitmap rotateImage (Bitmap srcBitmap, int width, int height, int rotation) { // create rotated image Matrix matrix = new Matrix(); rotation = (rotation +1 ) % 3; rotation = rotation * 90; matrix.postRotate( rotation, width, height ); Bitmap rotatedBmp = Bitmap.createBitmap( srcBitmap, 0, 0, srcBitmap.getWidth(), srcBitmap.getHeight(), matrix, false ); return rotatedBmp; }