2010-10-28 78 views
0

我試圖簡單地在QVGA設置下測試我的應用程序,但是當我運行我創建的QVGA模擬器時,95%的時間加載了與HVGA相關的資源。我有我的應用程序中包含的自定義位圖,所以對我來說能夠驗證外觀至關重要。Android模擬器加載密度錯誤

要查看的密度被視爲,我添加以下代碼,並顯示在吐司結果:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH 
int dpiClassification = dm.densityDpi; 

// these will return the actual dpi horizontally and vertically 
float xDpi = dm.xdpi; 
float yDpi = dm.ydpi; 

Output was -> DensityClass = 160 - xDpi = 164.75 - yDpi = 165.88 

也許我只是誤解,但是對於初學者來說,應該不是密度類有120的值?

我創建的AVD管理器QVGA仿真器具有以下設置:

Target: 1.6 level 4 
Hardware Property: Abstracted LCD Density = 120 (verified in config.ini file) 

在我的清單文件,我增加了以下內容:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/> 

在我的res文件夾,我有:

drawable 
drawable-hdpi 
drawable-ldpi 
drawable-mdpi 

有人能告訴我爲什麼模擬器不加載低密度繪圖?這個QVGA仿真器中的drawable與HVGA仿真器中的drawable完全相同(不是我想要的),是的,我在將它們添加到LDPI文件夾(大幅縮小)之前縮小了圖片大小。對於沒有明顯的理由,偶爾模擬器實際上將正確地加載和一切正常顯示,但同樣,這只是發生的時間約爲5%,沒有明顯的理由爲什麼。

回答

1

我一直在努力使用我的應用程序返回中等密度,無論我現在使用什麼類型的模擬器。一旦我發現支持屏幕/ anyDensity聲明,解決了我的問題。我注意到文檔在第4級之後出錯了,你不需要清單文件中的那條語句。但是,我使用的是2.2,所以這是錯誤的。

總而言之,這可能與您的問題有關。

我真的想指出的是this webpage.不要在QVGA上浪費太多時間,你可以在別處看到更好的時間。

+2

我希望這對我來說很簡單。不管我做了什麼,我很少得到期望的結果。謝謝雖然鏈接,這是一個有點欣慰地知道,有這麼幾個電話,但我仍然討厭的事實,即使是一個人可能與我的應用程序的一個不愉快的經歷,只是因爲我沒有能力徹底測試。 – Michael 2010-11-09 00:18:47