[英]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.