2012-10-16 180 views
0

我有一個分辨率爲800 * 480的設備。 我創建了「Hello word」應用程序。然後我在MainActivity的onCreate中獲得DisplayMetrics。分辨率問題

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
Log.d("Resolution", "resolution: " + metrics.widthPixels + " x " + metrics.heightPixels); 

在DisplayMetrics中有533 * 320個像素。爲什麼?

如何使分辨率爲800 * 480像素的應用程序。

回答

2

這是因爲您正在閱讀device independent pixels而不是real pixels。這些dip等於mdpi分辨率。因此,儘管實際屏幕尺寸,你應該檢查密度它是什麼(mdpihdpixdpi),然後把你的高分辨率資產-hdpi後綴的文件夾(即drawable-hdpilayout-hdpi)。通常,您在dp中設置佈局(因此每個活動一個佈局XML文件通常就足夠了,您應該像往常一樣將它們放在通用的res/layout文件夾中)。然後把高分辨率繪圖資源,使應用程序看起來更好hdpi設備

上見this article像素大小和密度的關係......

+0

** **密度爲1.0,我把main.xls佈局,華電國際,但它是一樣的。 – verybadbug

+0

'1.0'是基本密度,意思是'-mdpi'這意味着你真的不能做太多。如果目標低於API 13,請參閱:http://developer.android.com/guide/topics/resources/providing-resources.html。如果API 13沒有問題,請參閱屏幕大小資源選擇器。但我會這樣 - 如果手機說它是mdpi而不是hdpi與它同時存在。看到這裏也:http://developer.android.com/guide/practices/screens_support.html#testing像素大小vs密度信息... –

+0

好的...我應該做不同的'佈局'和'圖形'爲不同的分辨率(ldpi,mdpi,hdpi)?系統如何爲我的應用程序選擇分辨率?爲什麼它不是hdpi? – verybadbug