繁体   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