如何将位图旋转45度

时间:2015-07-16 10:28:51

标签: android matrix bitmap rotation

如何rotate Bitmap 45度?

Matrix matrix = new Matrix();
matrix.postRotate(degrees);
mBitmapFirst = Bitmap.createBitmap(mBitmapFirst, 0, 0, mBitmapFirst.getWidth(), mBitmapFirst.getHeight());
mImageFirstView.setImageBitmap(mBitmapFirst);

我使用了这种方法,但仅在rotation 90 degrees

时才有效

2 个答案:

答案 0 :(得分:2)

您可以使用此示例旋转到45度:

Matrix minMatrix = new Matrix();
//height and width are set earlier.
Bitmap minBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas minCanvas = new Canvas(minBitmap);

int minwidth = bitmapMin.getWidth();  
int minheight = bitmapMin.getHeight();
int centrex = minwidth/2;
int centrey = minheight/2;

minMatrix.setRotate(mindegrees, centrex, centrey);
Bitmap newmin = Bitmap.createBitmap(minBitmap, 0, 0, (int) minwidth, (int) minheight, minMatrix, true);

minCanvas.drawBitmap(newmin, (centrex - newmin.getWidth()/2), (centrey - newmin.getHeight()/2), null);
minCanvas.setBitmap(minBitmap);

其中mindegree是你的轮换度,

希望我帮助你

答案 1 :(得分:1)

这是link  通过节省每次创建新位图的需要,使用也实现了内存节省