歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

如何控制圖片不被自動縮放

在客戶端的游戲制作過程中,經理會要處理一些圖片,比如翻轉,位移,縮放。

在我最開始做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. }  
Copyright © Linux教程網 All Rights Reserved