android - 如何从 PX 设置 DP 的高度和宽度

标签 android android-layout

我正在开发 Android 应用程序,该应用程序可在 Android 手机(而非平板电脑)上广泛运行。 现在设计师给了我设计好的PSD文件,并要求我根据它设置元素的大小。

现在,在这些文件中,例如一个元素的高度和宽度为 90px,我应该在 Android XML 布局文件上设置多少 DP?

更多我正在为 ldpi、mdpi、hdpi 和 xdpi 创建单一布局。 我试过http://angrytools.com/android/pixelcalc/计算相同,

但如果我选择 90PX,它会显示 ld、md、hd 和 xd 不同的 DP 大小。如何在可以在各种设备上运行的单个布局文件中设置 DP 大小?

请多多指教, 问候, 巴文。

最佳答案

but if I choose 90PX, it shows different DP size for ld, md, hd and xd. How can I set DP size in a single layout file that can run on variety of devices?

=> 供您引用,DP 代表密度无关像素,这就是 PX 和 DP 之间的区别所在。

因此,如果您确实想提供对所有分辨率/密度的兼容性,那么您必须在不同值目录下的不同 dimens.xml 中声明 dp 值。

与密度无关的像素相当于 160 dpi 屏幕上的 1 个物理像素和 240 dpi 屏幕上的 1.5 个物理像素。这可以使用 px = dp * (dpi/160) 进行计算。

声明密度值的比率为:xhdpi: 2.0、hdpi: 1.5、mdpi: 1.0(基线)、ldpi: 0.75

标准做法:

标准做法是在不同值目录下的不同dimens.xml中声明dp值(在所有值目录中具有相同的名称),并在需要时引用特定的维度值。根据密度值,Android 系统将决定自己使用特定的密度值(我的意思是从特定的 dimens.xml 文件中获取 dp 值)。

例如:

values/
    dimens.xml
values-land/
    dimens.xml
values-xlarge-land
    dimens.xml
values-large
    dimens.xml

关于android - 如何从 PX 设置 DP 的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857499/

相关文章:

java - 如何检查 Android 中是否缺少任何类?

android - 如何判断PDF是否有标签?

android - 为什么我的Android应用程序的 View 仅在特定情况下更新?

android - 如何在 React Native 中使用来自服务器的 json 数据动态显示底部选项卡导航?

android - [在应用程序运行时] 定期执行操作的最佳方式 - 处理程序?

javascript - 从 React native 应用程序打开外部应用程序(单击按钮)

java - Android获取文本EditText到AlertDialog

android - TextInputlayout 在设置错误时将 edittext 变为红色

android - TabLayout 上方的页眉布局

android - 如何对动态添加的 View 进行排序