drawable-ldpi的dpi爲120
drawable-mdpi的dpi爲160
drawable-hdpi的dpi爲240
drawable-xhdpi的dpi爲320
另外還得知道一個‘屏幕密度’的概念,呃,這個詞語是我自己杜撰的,其實就是知道android的一個規定:dpi爲160的屏幕密度爲1,其他照着算就行了。
獲取屏幕分辨率的代碼
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width1 = dm.widthPixels;
int height1 = dm.heightPixels;
Toast.makeText(this, width1 + "*" + height1, Toast.LENGTH_SHORT).show();
}
下面這段代碼的desity表示設備每英寸顯示160個物理像素,則會
取drawable-mdpi下的圖片,爲1.5,
取drawable-hdpi,爲2,
取drawable-xhdpi,爲0.75,
取drawable-ldpi,看看手機屏幕的密度吧(800*1280,應該是2),
這樣就能確定到底是取的哪個目錄下的圖片,再進一步確定問題到底出現在哪。
DisplayMetrics metrics = null;
metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
float density = metrics.density;
我的手機是三星i9003,分辨率是480*800,測試過爲drawable-hdpi,之前一直很苦惱爲什麼一個42*42的圖片顯示出來是72*72,原來是我把它放在drawable-mdpi下了,鬱悶了半天