本节讲解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对象。其中具体的宽高可以调整。 

Java代码
  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类相关的一些其他的应用实例。

本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/game/91.html
2012年6月28日
发布:鸡啄米 分类:Android游戏开发 浏览: 评论:1