Android游戏开发之十:Bitmap位图的旋转

移动开发 Android 游戏开发
本节讲解Android游戏开发中Bitmap的实用操作--位图旋转,此知识点是Android游戏开发的基础性内容。

Android为图形的旋转和变化提供了方便的矩阵Matrix类。Maxtrix类的setRotate方法接受图形的变换角度和缩放,而后可以 由Bitmap类的createBitmap方法的一个重载函数接受Maxtrix对象,此createBitmap方法原型如下:

public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)

参数的具体意义:

source:源bitmap对象

x:源坐标x位置

y:源坐标y位置

width:宽度

height:高度

m:接受的maxtrix对象,如果没有可以设置为null

filter:该参数仅对maxtrix包含了超过一个翻转才有效。

下面给大家一个比较经典的例子,rotate方法是静态方法可以直接调用,参数为源Bitmap对象,参数二为旋转的角度,从0~360,返回值为新的Bitmap对象。其中具体的宽高可以调整。

  1. public static Bitmap rotate(Bitmap b, int degrees) {    
  2.         if (degrees != 0 && b != null) {    
  3.             Matrix m = new Matrix();    
  4.             m.setRotate(degrees,    
  5.                     (float) b.getWidth() / 2, (float) b.getHeight() / 2);    
  6.             try {    
  7.                 Bitmap b2 = Bitmap.createBitmap(    
  8.                         b, 00, b.getWidth(), b.getHeight(), m, true);    
  9.                 if (b != b2) {    
  10.                     b.recycle();  //Android开发网再次提示Bitmap操作完应该显示的释放    
  11.                     b = b2;    
  12.                 }    
  13.             } catch (OutOfMemoryError ex) {    
  14.                 // 建议大家如何出现了内存不足异常,***return 原始的bitmap对象。.    
  15.             }    
  16.         }    
  17.         return b;    
  18.     }   

在后面的教程中我们会给出Matrix类相关的一些其他的应用实例。

责任编辑:闫佳明 来源: jizhuomi
相关推荐

2013-09-16 16:56:09

AndroidBitmap内存优化

2020-09-08 06:28:42

大数据应用

2013-05-21 11:26:49

Android游戏开发Sensor感应

2013-05-21 14:22:29

Android游戏开发捕获屏幕双击事件

2013-05-20 17:51:47

Android游戏开发SurfaceView

2019-02-01 10:05:33

开源游戏开发游戏引擎

2013-05-20 17:13:17

Android游戏开发CanvasPaint

2013-05-21 11:33:11

Android游戏开发按键中断事件

2013-05-21 13:55:51

Android游戏开发图像渐变特效

2013-05-20 17:48:20

2013-05-21 09:56:15

2013-05-21 11:24:07

Android游戏开发Sensor重力感应

2013-05-20 15:42:22

2013-05-21 13:33:02

Android游戏开发异步音乐播放

2013-05-21 14:10:11

Android游戏开发SoundPool类同时多音效

2013-05-21 14:15:23

Android游戏开发屏幕分辨率

2013-05-20 17:33:44

Android游戏开发自定义View

2013-05-21 16:17:13

2013-05-21 15:28:31

2013-05-20 17:21:34

点赞
收藏

51CTO技术栈公众号