1. 程式人生 > >Android 不同螢幕Bitmap顯示影象的縮放問題

Android 不同螢幕Bitmap顯示影象的縮放問題

在使用Bitmap進行點陣圖讀取和顯示的時候需要注意在生成點陣圖時,系統會根據不同的情況來縮小、放大影象。

當把圖片放到drawable資料夾中時,160密度的模擬器顯示的影象有放大效果,240密度的模擬器顯示原尺寸的影象。

當把圖片放到drawable-hdpi資料夾中時,160密度的模擬器顯示出的影象有縮小效果,240密度的模擬器顯示原尺寸的影象。

當把圖片放到drawable-mdpi資料夾中時,160密度的模擬器顯示原尺寸的影象,240密度的模擬器顯示放大的影象。

當把圖片放到drawable-ldpi資料夾中時,160、240密度的模擬器都顯示放大的圖片。

由此可以看出,在使用Bitmap顯示影象時,一般應放在drawable-hdpi資料夾中,這樣可以根據螢幕的密度來調整影象大小,比如再做遊戲時,大螢幕的與小螢幕的手機中,人物或物體應該有大小之分。

如果想無論什麼密度都顯示出原尺寸的影象,則需要有如下幾行程式碼進行設定:

// Bitmap的配置引數
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inDensity = getResources().getDisplayMetrics().densityDpi;
opts.inTargetDensity = getResources().getDisplayMetrics().densityDpi;

// 以指定的引數建立Bitmap
Bitmap girl = BitmapFactory.decodeResource

(getResources(), R.drawable.girl, opts);