2012-03-14 54 views
3

我直接在與電腦相連的手機上從SDK運行我的應用程序。有什麼方法可以確定(使用SDK工具)哪個dpi可繪製文件夾實際上用於在應用程序中顯示特定的png文件?如何在SDK中確定哪個資源文件實際使用?

編輯: 要說清楚。我想自己如何使用其他方法獲取這些信息: 1.在不同的dpi文件夾下將不同的文件置於相同的名稱下 2.寫一小段代碼以編程方式檢查它 現在真正的問題是:我可以得到這個信息直接在SDK(DDMS或Hierarchy Viewer)中?

+0

您無權訪問的設備 – 2012-03-14 10:36:35

回答

3

您無法找到正在使用哪個可繪製文件夾但是您可以找到使用哪個「密度」。

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

然後您可以使用metrics.densityDpi來查找使用哪個DPI。它會是DENSITY_DEFAULT,DENSITY_HIGH,DENSITY_LOW,DENSITY_MEDIUM等,您可以比較並找出。

如果是 DENSITY_HIGH - 繪製 - 華電國際 DENSITY_LOW =繪製-LDPI DENSITY_MEDIUM - 繪製-MDPI

看到這裏的文檔http://developer.android.com/reference/android/util/DisplayMetrics.html

+0

這並不一定總是如此......例如,原始Nexus 7是TVDPI ...建議不提供TVDPI資源,但要提供正常的ldpi,mdpi,hdpi和xhdpi資源,並讓Android OS選擇要從中拉出哪個文件夾並相應地縮放它們 – Justin 2013-08-10 05:09:00

0

你不必知道這件事。在每個drawable- *文件夾中,您將資源放在同一個名稱中,而android會選擇必須顯示的drawable。

+0

資源Android SDK中的文件夾我知道這一點,但我想檢查我在屏幕上看到的圖形文件是否真的是我認爲應該使用的圖形文件。當然,我可以檢查它在不同的dpi文件夾下將不同的文件放在相同的名稱下,但也許有一些更聰明的方法來實現這一點。 – Izydorr 2012-03-14 10:36:21

+0

好吧android在屏幕的基礎上加載資源。所以如果你的屏幕是hdpi,android會在hdpi文件夾中加載資源。 – Blackbelt 2012-03-14 10:38:34

+0

是的。那麼這些信息是否顯示在DDMS或Hierarchy Viewer中的某個地方,還是必須使用「假」圖像或進行編程測試等「技巧」來檢查它? – Izydorr 2012-03-14 10:45:53

0

您可以嘗試添加具有相同名稱的不同圖形。通過這個,你可以知道手機正在使用哪個文件夾的圖形。

check programmatically屏幕類型是您的設備(hdp,mdpi,ldpi),然後將自動使用相應的可繪製文件夾。

+0

是的,我知道所有這些選項。我只是想讓那個SDK可以在DDMS或Hierarchy Viewer中給我這些信息。 – Izydorr 2012-03-14 10:44:13

相關問題