【问题标题】:Android: Which dimens.xml file picked for what screen size?Android:为什么屏幕尺寸选择了哪个dimens.xml 文件?
【发布时间】:2014-09-01 10:32:22
【问题描述】:

如果我有一个 2 行 2 列的表格布局。每个象限表框都有静态文本,如“box_11”、“box_12”、“box_21”、“box_22”。我希望大屏幕的文本大小更大,小屏幕的文本大小更小。我希望文本根据屏幕大小进行缩放。我该怎么做?
我想我应该使用 dimens.xml 文件,定义:
<dimen name="activity_text_size">15sp</dimen>
那么我应该使用android:textSize="@dimen/activity_text_size"

我看到我的项目工作区中有不同的“值”目录,例如 values、values-sw600dp、values-sw720dp_land、values-v11、values-v14。每个“值”目录都可以有一个dimens.xml 文件。当您有多个文件时,在什么基础上选择 dimens.xml?

【问题讨论】:

  • sp 应该缩放(这就是它的意思,缩放独立像素)。除非您确实需要它们,否则不要开始创建不同的维度。当您开始修复字体问题时,请专注于使用不同的密度限定符,而不是不同的布局大小限定符。

标签: android xml android-layout text-size


【解决方案1】:

参考@matiash 的链接和另一个官方资源: - http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch - https://developer.android.com/guide/practices/screens_support.html

满足的“标准”密度是:

一组六个广义密度:

  1. ldpi(低)~120dpi

  2. mdpi(中)~160dpi

  3. hdpi(高)~240dpi

  4. xhdpi(超高)~320dpi

  5. xxhdpi(超超高)~480dpi

  6. xxxhdpi (extra-extra-extra-high) ~640dpi

当您使用多个 dimen.xml 文件创建应用程序时,会选择适合该屏幕尺寸的那个。

如果在没有为特定屏幕密度提供资源的情况下:

如果没有匹配的资源可用,系统使用默认资源并根据需要放大或缩小以匹配当前屏幕尺寸和密度

希望对你有帮助:)

【讨论】:

    【解决方案2】:

    例如:

    //进入dimen.xml(600dp)

    <resources> <dimen name="activity_text_size">15dp</dimen> </resources>

    //进入dimen.xml(sw720dp_land)

    <resources> <dimen name="activity_text_size">20dp</dimen> </resources>

    //进入dimen.xml(w820dp)

    <resources> <dimen name="activity_text_size">25dp</dimen> </resources>

    对于任何尺寸的屏幕,您都应该使用特定的 dimen.xml(您的尺寸目标)并为其使用相同的 dimen.name。

    【讨论】:

      猜你喜欢
      • 2015-12-27
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      相关资源
      最近更新 更多