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

android实现图片旋转

2016-05-30 15:13 357 查看
根据给定的源图片以及需要旋转的任意角度执行图片旋转变换。

/*
*
* @Title: bitmapRotation
* @Description: 图片旋转
* @param bm
* @param orientationDegree
* @return Bitmap
* @throws
*/
public Bitmap bitmapRotation(Bitmap bm, final int orientationDegree) {

Matrix m = new Matrix();
m.setRotate(orientationDegree, (float) bm.getWidth() / 2,
(float) bm.getHeight() / 2);
float targetX, targetY;
if (orientationDegree == 90) {
targetX = bm.getHeight();
targetY = 0;
} else if (orientationDegree == 270) {
targetX = 0;
targetY = bm.getWidth();
} else {
targetX = bm.getHeight();
targetY = bm.getWidth();
}

final float[] values = new float[9];
m.getValues(values);

float x1 = values[Matrix.MTRANS_X];
float y1 = values[Matrix.MTRANS_Y];

m.postTranslate(targetX - x1, targetY - y1);

Bitmap bm1 = Bitmap.createBitmap(bm.getHeight(), bm.getWidth(),
Bitmap.Config.ARGB_8888);

Paint paint = new Paint();
Canvas canvas = new Canvas(bm1);
canvas.drawBitmap(bm, m, paint);

return bm1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: