我整理了一下,大概有四种,亲测成功三种。
第一种,效率较低,不过看许多博客都使用这种方法,即旋转bitmap:
- Bitmap bitmap = ((BitmapDrawable)getResources().getDrawable(R.drawable.ic_launcher)).getBitmap();
- Matrix matrix = new Matrix();
- matrix.setRotate(90);
- Bitmap new = Bitmap.create(bitmap,0,bitmap.getWidth(),0,bitmap.getHeight(),matrix);
- image.setBitmapResource(bitmap);
如果程序不断获取新的bitmap重新设置给ImageView的话,那么bitmap在不断旋转,又不回收内存,浪费大大哒,不推荐使用。
第二种,使用ImageView自带的旋转方法
可以通过在xml中设置ImageView的属性来实现,如
- android:rotation="90"
动态调用如下:
- image.setPivotX(image.getWidth()/2);
- image.setPivotY(image.getHeight()/2);//支点在图片中心
- image.setRotation(90);
第三种,使用旋转动画
第四种,其他博客看到的,未测试!
- Matrix matrix=new Matrix();
- rotateImage.setScaleType(ScaleType.MATRIX); //required
- matrix.postRotate((float) progress, pivotX, pivotY);
- rotateImage.setImageMatrix(matrix);