歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何控制圖片不被自動縮放

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

日期:2017/3/1 10:52:15   编辑: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. Resources res = MainActivity.getResources();
  8. final DisplayMetrics metrics = res.getDisplayMetrics();
  9. //------------以下處理,保證圖片不會被縮放-------------------
  10. Options myOptions = new Options();
  11. myOptions.inScaled = false;
  12. /**
  13. * 設置圖片的分辨率
  14. */
  15. myOptions.inDensity = metrics.densityDpi;
  16. /**
  17. * 設置屏幕的分辨率率
  18. */
  19. myOptions.inScreenDensity = metrics.densityDpi;
  20. /**
  21. * 如果inScaled為false ,則以下的動作不會被執行
  22. */
  23. myOptions.inTargetDensity = metrics.densityDpi;
  24. Bitmap bitmap = BitmapFactory.decodeResource(res, id, myOptions);
  25. if (bitmap == null)
  26. System.out.println("請注意:加載資源不成功!");
  27. return bitmap;
  28. }
Copyright © Linux教程網 All Rights Reserved