如何控制图片不被自动缩放


在客户端的游戏制作过程中,经理会要处理一些图片,比如翻转,位移,缩放。

在我最开始做Android游戏开发的时间,最让我头大的就是Android的本身自带的图片自动缩放功能。而这往往不是我们所想要的。

遇到的问题:

1.图片加载后,被系统自动缩放,导致UI界面、地图元素位置混乱,惨不忍睹

2.在组合图片的时候,由于图片被缩放,无法找到原始位置的图块,导致绘制混乱

解决办法参考,本人是这样做的。在Android的API内有提供了一个Options的选项类,可以让开发者定义一些属性,从而控制加载的图片!

做法如下:

  1. /** 
  2.  * 创建一个Bitmp对象 
  3.  * @param id 
  4.  * @return 
  5.  */  
  6. public static final Bitmap createBitmap(int id) {  
  7.       
  8.     Resources res = MainActivity.getResources();  
  9.   
  10.     final DisplayMetrics metrics = res.getDisplayMetrics();  
  11.     //------------以下处理,保证图片不会被缩放-------------------   
  12.     Options myOptions = new Options();  
  13.     myOptions.inScaled = false;  
  14.     /** 
  15.      * 设置图片的分辨率 
  16.      */  
  17.     myOptions.inDensity = metrics.densityDpi;  
  18.     /** 
  19.      * 设置屏幕的分辨率率 
  20.      */  
  21.     myOptions.inScreenDensity = metrics.densityDpi;   
  22.       
  23.     /** 
  24.      * 如果inScaled为false ,则以下的动作不会被执行 
  25.      */  
  26.     myOptions.inTargetDensity = metrics.densityDpi;  
  27.   
  28.     Bitmap bitmap = BitmapFactory.decodeResource(res, id, myOptions);  
  29.   
  30.     if (bitmap == null)  
  31.         System.out.println("请注意:加载资源不成功!");  
  32.   
  33.     return bitmap;  
  34. }  

相关内容