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