簡體   English   中英

Android中“最小寬度dp”的混淆

[英]Confusion in “smallest width dp” in Android

我正在學習如何使用“最小寬度DP”,以支持使用不同的屏幕在Android中。

我得到下面的數字是dp中設備側面的最小值。

屏幕寬度dp的典型數字是:

320:電話屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。

480:諸如Streak(480x800 mdpi)之類的Tweener平板電腦。

600:7英寸平板電腦(600x1024)。

720:10英寸平板電腦(720x1280、800x1280等)。

根據帖子,連結6的分辨率為730 x 410 dp。

Nexus 6擁有令人印象深刻的5.96英寸四核高清屏幕,分辨率為2560 x 1440(493 ppi)。 這相當於〜730 x 410 dp(與密度無關的像素)。

但正如在解釋

           dp = (px/dpi)*160
              = (1440/493)*160
              = ~467

那么這如何轉換為730 x 410 dp? 當我在nexus 6中運行該演示時,設備將使用在res / values-sw320dp / dimens.xml下定義的填充尺寸

這使我感到困惑。 如何實際計算dp並使用“最小寬度dp”相應地創建視圖?

除了res / values-sw320dp之外,我還有res / values和在res / values-sw600dp下都有dimens.xml。

UPDATE解決了我的困惑。 檢查問題下的評論。

您可以使用以下代碼獲取正確的值:

DisplayMetrics displayMetrics = this.getResources().getDisplayMetrics();
    float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
    float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
    Log.d("dpHeight-----",String.valueOf(dpHeight));
    Log.d("dpWidth------",String.valueOf(dpWidth));

例如,對於Xperia Z 1080x1920px,值是360 x592dp,設置是values-sw360dp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM