2012-11-02 62 views
1

我想在我的代碼中知道我的設備是使用320-hdpi還是320-mdpi資源。可能嗎?如何知道屏幕在Android中使用320-hdpi或320-mdpi

我經歷了一些像this這樣的例子,但它給了我一般密度像素(如mdpi,ldpi和hdpi)。但我想知道我的設備使用哪些資源數據。無論是320-hdpi,320-mdpi還是320-ldpi。

預先感謝您。

+0

320-hdpi和320-mdpi資源是什麼意思? 320指的是什麼? – louielouie

+0

320是XHDPI。沒有像320 HDPI或MDPI這樣的東西。 – kcoppock

+0

請閱讀本文檔:http://developer.android.com/guide/practices/screens_support.html – AndroDev

回答

0

您可以在設備

https://play.google.com/store/apps/details?id=com.roysolberg.android.developertools 

進入「資源限定符」,它會給你所有的信息上安裝此應用程序,如設備的屏幕尺寸(正常,大,超大)和屏幕像素密度(LDPI ,MDPI,華電國際,...)

+0

感謝您的回答,但這不是我正在尋找的。 我想在我的代碼中知道它使用的分辨率資源。 – AndroDev

1

從你Activity嘗試...

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

然後你可以看一下的metrics的各個領域,找出物理和顯示器的dpi特性。

請參閱DisplayMetrics文檔。

+0

我已經通過這個鏈接並添加了問題:stackoverflow.com/questions/10536701/...。這並不能解決我的問題。它只會給你設備是hdpi還是ldpi。我希望在構建時選擇哪個資源文件夾。 – AndroDev

+1

@AndroDev:沒有API以編程方式發現實際文件夾。 Android使用顯示器的各種參數來確定要使用哪個文件夾,並且「DisplayMetrics」字段爲您提供邏輯和實際dpi信息以及寬度和高度的物理像素。使用這些你可以計算出屏幕尺寸並相應地爲你自己工作。儘管如此,我不明白你爲什麼要這麼做 - Android這樣做的目的是爲了抽象事物,並且意味着代碼不應該知道使用的是什麼樣的屏幕。 – Squonk

2

我認爲你可以使用DisplayMetrics這個類。

使用以下代碼獲取顯示指標。

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

然後你就可以通過metrics.desity

如果密度比1 MDPI資源將使用獲得desity。 如果它小於1,那麼將使用ldpi資源。 如果將使用其1.5以上的hdpi資源。 如果將其使用2比xhdpi資源。

+0

我已經通過這個鏈接,並添加了問題:http://stackoverflow.com/questions/10536701/call-a-function-based-on-the-devices-screen-size-hdpi-ldpi-mdpi。這並不能解決我的問題。它只會給你設備是hdpi還是ldpi。我希望在構建時選擇哪個資源文件夾。 – AndroDev

+0

好的。除此之外,您可以通過在hdpi和mdpi文件夾中將具有相同名稱的不同圖像進行簡單檢查。所以通過在測試時運行它,你可以得到它是否使用hdpi或mdpi。 :) –

相關問題