gpt4 book ai didi

android - Android中 "smallest width dp"的困惑

转载 作者:搜寻专家 更新时间:2023-11-01 07:53:54 37 4
gpt4 key购买 nike

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

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

Typical numbers for screen width dp are:

320: a phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).

480: a tweener tablet like the Streak (480x800 mdpi).

600: a 7” tablet (600x1024).

720: a 10” tablet (720x1280, 800x1280, etc).

根据 this post nexus 6 有 730 x 410 dp。

The Nexus 6 boasts an impressive 5.96” Quad HD screen display at a resolution of 2560 x 1440 (493 ppi). This translates to ~ 730 x 410 dp (density independent pixels).

但如 this 中所述

           dp = (px/dpi)*160
= (1440/493)*160
= ~467

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

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

除了 res/values-sw320dp,我还有 res/value 和 res/values-sw600dp,它下面有 dimens.xml。

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

最佳答案

您可以通过以下代码获取正确的值:

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 的值为 360x592dp,设置为 values-sw360dp

关于android - Android中 "smallest width dp"的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869168/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com