在客戶端的游戲制作過程中,經理會要處理一些圖片,比如翻轉,位移,縮放。
在我最開始做Android游戲開發的時間,最讓我頭大的就是Android的本身自帶的圖片自動縮放功能。而這往往不是我們所想要的。
遇到的問題:
1.圖片加載後,被系統自動縮放,導致UI界面、地圖元素位置混亂,慘不忍睹
2.在組合圖片的時候,由於圖片被縮放,無法找到原始位置的圖塊,導致繪制混亂
解決辦法參考,本人是這樣做的。在Android的API內有提供了一個Options的選項類,可以讓開發者定義一些屬性,從而控制加載的圖片!
做法如下:
- /**
- * 創建一個Bitmp對象
- * @param id
- * @return
- */
- public static final Bitmap createBitmap(int id) {
-
- Resources res = MainActivity.getResources();
-
- final DisplayMetrics metrics = res.getDisplayMetrics();
- //------------以下處理,保證圖片不會被縮放-------------------
- Options myOptions = new Options();
- myOptions.inScaled = false;
- /**
- * 設置圖片的分辨率
- */
- myOptions.inDensity = metrics.densityDpi;
- /**
- * 設置屏幕的分辨率率
- */
- myOptions.inScreenDensity = metrics.densityDpi;
-
- /**
- * 如果inScaled為false ,則以下的動作不會被執行
- */
- myOptions.inTargetDensity = metrics.densityDpi;
-
- Bitmap bitmap = BitmapFactory.decodeResource(res, id, myOptions);
-
- if (bitmap == null)
- System.out.println("請注意:加載資源不成功!");
-
- return bitmap;
- }