我正在学习如何使用“最小宽度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 (密度无关像素)。
但正如在这中所解释的
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解决了我的困惑。检查问题下的评论。
发布于 2015-07-17 21:46:46
您可以使用以下代码获得正确的值:
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,设置为
https://stackoverflow.com/questions/30869168
复制相似问题