//旋转
//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;
}

更多相关文章

  1. Android(安卓)OpenGL之二图像旋转实例
  2. Android(安卓)bitmap位图旋转
  3. android canvas中的save()和restore()的作用及效果
  4. 【Android】android开发---实现屏幕旋转的两种方法
  5. Android(安卓)屏幕的旋转 onConfigurationChanged方法
  6. Android(安卓)ActionBar中的按钮添加旋转动画
  7. android 自定义水平和圆形progressbar 只定义一些style就可以
  8. Android(安卓)电子罗盘--指南针(方向传感器的应用)
  9. Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

随机推荐

  1. Android之简单了解Android OS内部机制
  2. Android中 在显示ImageView时图片上面和
  3. Android(安卓)init 详细过程分析
  4. 【转】获取android设备 id
  5. PC_android通信之传输图片并显示在手机端
  6. 友盟资深工程师徐仙明确定演讲主题:Androi
  7. Android内核详解之Low memory killer
  8. Android开发者最容易犯的几个错误
  9. android系统中log机制
  10. android第三天课程 activity生命周期