首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中“最小宽度dp”的混淆

Android中“最小宽度dp”的混淆
EN

Stack Overflow用户
提问于 2015-06-16 13:34:35
回答 1查看 23.1K关注 0票数 3

我正在学习如何使用“最小宽度dp”来支持使用安卓系统中的不同屏幕。

我知道下面的数字是dp设备中最小的一面。

屏幕宽度dp的典型数字是: 320:手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。 480:类似于Streak的推特平板电脑(480x800 mdpi)。 600: 7英寸平板电脑(600x1024)。 720: 10英寸平板电脑(720x1280,800x1280等)。

根据,post nexus 6有730x410DP。

Nexus 6拥有令人印象深刻的5.96英寸四高清显示屏,分辨率为2560x1440 (493 ppi)。这转化为~ 730 x 410 dp (密度无关像素)。

但正如在中所解释的

代码语言:javascript
复制
           dp = (px/dpi)*160
              = (1440/493)*160
              = ~467

那么,这怎么会转化为730 x 410 dp呢?此外,当我在nexus 6中运行演示时,设备正在使用res/value下定义的填充维-sw320dp/ddens.xml。

这让我很困惑。如何使用“最小宽度dp”计算dp并相应地创建视图?

除了res/value -sw320dp之外,我还有res/value和res/value-sw600dp,其中包含dimens.xml。

UPDATE解决了我的困惑。检查问题下的评论。

EN

回答 1

Stack Overflow用户

发布于 2015-07-17 21:46:46

您可以使用以下代码获得正确的值:

代码语言:javascript
复制
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 1080x1920px,值为360x592dp,设置为

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30869168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档