我想知道如何为Android设备添加替代资源5.5''和6'在项目结构内。 我想为5.5到6英寸之间的设备添加一个具有不同文本大小的自定义dimens.xml文件 我正在考虑使用小宽度配置限定符,但有很多屏幕配置,我不知道哪个屏幕尺寸是5.5'''和6''手机。我可以使用的另一个替代方案是屏幕大小存储桶(小型,普通型,大型,xlager),但这些是从Android 3.2及更高版本推荐使用。
有人可以就此提出建议吗?
答案 0 :(得分:2)
感谢您的建议,但请查看此示例。
我有这个电话: - Nexus 5x,分辨率为5.2''1080x1920像素,420dpi
dp = px / (dpi / 160)
dp = 1080 px / (420 dpi / 160)
dp = 411 dp
Nexus 6p,5.7分辨率1440x2560像素,560dpi
dp = px /(dpi / 160)
dp = 1440 px /(560 dpi / 160)
dp = 411 dp
如果我为具有5.7英寸的Nexus 6p创建一组特定的资源,或者对于只有5.7英寸的设备创建一组特定的资源,我可以创建此文件夹
values-sw411dp
但是,当在5.2“和5.7”设备上使用该应用程序时,将使用该文件夹中的所有资源。
我还有其他问题,可能是最小的手机,比如5.0''可能比5.7'更大的dp,它将要发生的是5.7''设备的资源,它将被用于5.0''设备也是。
如何为5.7''手机指定资源。
答案 1 :(得分:0)
嗯,你是对的我也会选择最小宽度的水桶。
您可以使用the official documentation中给出的公式检查dp
中的电话尺寸来计算最小宽度:
px = dp * (dpi / 160)
所以要获得最小宽度dp:
dp = px / (dpi / 160)
px
是较小维度上的像素,dpi
是设备的每英寸点数比率。
所以首先检查设备'像素大小和dpi
值,然后使用上面的公式计算dp
值。然后,您可以使用sw400dp
等资源创建文件夹,您可以在其中更改为计算的dp
。
此外,我建议检查其他设备尺寸,以便在较小/较大的屏幕上没有奇怪的布局。
答案 2 :(得分:0)
Abbath,非常感谢你继续回答我的问题。我不使用图像,我正在使用TextView的文本大小。我需要更改textView文本大小,仅当设备屏幕大小大于5.5时才需要更改。我创建了一个/value-sw411dp/dimens.xml
,其中包含相应的textview文本大小。我发现sw411dp
是5.5'的最小dp宽度。设备,但有另一部手机有5.2''具有相同的屏幕空间。因此,系统会将/values-sw411dp/
内的资源用于具有5.5''和5.2'
你告诉我的是,如果一个5.2''与5.5'具有相同的屏幕dp,我不应该担心这一点,因为最后UI布局看起来会没有问题。