格式化

廣告

廣告2

2012年11月20日 星期二

[Android基本概念] Bitmap getWidth 不一樣像素是因為有drawable-(hdpi,mdpi,ldpi)的分別

[Android基本概念] Bitmap getWidth 不一樣像素是因為有drawable-(hdpi,mdpi,ldpi)的分別



drawable-(hdpi,mdpi,ldpi)的分別

dpi是「dot per inch」的縮寫,每英吋像素數。
四種密度分類:
  •  ldpi (low),
  • mdpi (medium)
  •  hdpi (high)
  •  xhdpi (extra high)
一般情況下的普通螢幕:
  • ldpi是120dpi
  • mdpi是160dpi
  • hdpi是240dpi
  • xhdpi是320dpi

WVGA,HVGA,QVGA的分別

  • VGA是(Video Graphics Array),顯示標準為640*480。
  • WVGA(Wide VGA)分辨率為480*800
  • HVGA(Half VGA)即VGA的一半分辨率為320*480
  • QVGA(Quarter VGA)即VGA非四分之一分辨率為240*320

drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的聯繫

  • hdpi裡面主要放高解析度的圖片,如WVGA (480×800),FWVGA (480×854)
  • mdpi裡面主要放中解析度的圖片,如HVGA (320×480)
  • ldpi裡面主要放低解析度的圖片,如QVGA (240×320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片!!

所以會造就你放一張圖1024x768的在ldpi,使用Bitmap類別內的getWidth()方法取得圖片寬的像素會不一樣就是因為這樣。

Android手機螢幕大小五花八門,怎樣才能讓App自動適應不同的螢幕呢?
其實很簡單,只需要在res目錄下創建不同的layout文件夾,所有的layout文件在編譯之後都會寫入R.java裡,而系統會根據螢幕的大小自己選擇合適的layout進行使用。

在之前的版本中,只有一個drawable,而2.1版本開始有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多解析度。
所以千萬要好好善用Android賦予的各種drawable資料夾存放圖片喔!

沒有留言 :