android旋转图片
//旋转
//float angle 旋转角度 如果为零 顺时针转90°
public static Bitmap rotateAndFrame(Bitmap bitmap, float angle ) {
final double radAngle = Math.toRadians(angle);
final int bitmapWidth = bitmap.getWidth();
final int bitmapHeight = bitmap.getHeight();
final double cosAngle = Math.abs(Math.cos(radAngle));
final double sinAngle = Math.abs(Math.sin(radAngle));
final int width = (int) (bitmapHeight * sinAngle + bitmapWidth * cosAngle);
final int height = (int) (bitmapWidth * sinAngle + bitmapHeight * cosAngle);
final float x = (width - bitmapWidth) / 2.0f;
final float y = (height - bitmapHeight) / 2.0f;
final Bitmap decored = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(decored);
canvas.rotate(angle, width / 2.0f, height / 2.0f);
canvas.drawBitmap(bitmap, x, y, null);
return decored;
}
更多相关文章
- Android(安卓)OpenGL之二图像旋转实例
- Android(安卓)bitmap位图旋转
- android canvas中的save()和restore()的作用及效果
- 【Android】android开发---实现屏幕旋转的两种方法
- Android(安卓)屏幕的旋转 onConfigurationChanged方法
- Android(安卓)ActionBar中的按钮添加旋转动画
- android 自定义水平和圆形progressbar 只定义一些style就可以
- Android(安卓)电子罗盘--指南针(方向传感器的应用)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)