我想声明一些维度,用于在我的应用中命名一些常见的文字大小。对于各种res类别,是否有任何商定的标准或建议的最佳实践?或者,是否有任何聪明的解决方案可以在当前系统默认情况下在运行时动态创建常见文本大小?例如,默认文本大小被视为普通文本。宣称较小的文字/描述较小,较小的标题尺寸,较大的标题尺寸等等。
答案 0 :(得分:3)
在我们的代码中,我们经常为文本大小设置3或4个步骤以使其看起来一致,例如
<dimen name="textview_small_size">11sp</dimen>
<dimen name="textview_middle_size">13sp</dimen>
<dimen name="textview_big_0_size">21sp</dimen>
<dimen name="textview_big_1_size">30sp</dimen>
为了获得完美的UI外观,您应该在不同的DPI和屏幕大小中定义单独的维度,如值-sw800dp-large-port。
因此,只需设置文本大小,使其看起来很完美,并保持统一规则。
答案 1 :(得分:2)
这可能是一个迟到的答案,但我觉得它仍然会有所帮助。
对于不同的屏幕尺寸,建议使用here所述的专用资源文件。
但是,在给定资源文件中构造内容也证明是有用的(相同的约定可用于文本和维度资源)。在这里,我使用与material colors类似的约定
GoogleToolBoxForMac
这极大地提高了可重用性并避免声明一次性使用一次性维度文字,如
<resources>
<dimen name="normal_100">16dp</dimen>
<dimen name="normal_125">20dp</dimen>
<dimen name="normal_150">24dp</dimen>
<dimen name="normal_175">28dp</dimen>
<dimen name="normal_200">32dp</dimen>
<dimen name="normal_225">36dp</dimen>
<dimen name="normal_250">40dp</dimen>
<dimen name="normal_275">44dp</dimen>
</resources>
有关完整的描述性文章,请参阅this。
希望这有帮助! :)
答案 2 :(得分:0)
您需要为不同的设备大小维护不同的值文件夹,并且可以在这些值文件夹中提及您的文本大小。 Android将根据设备采用适当的文字大小。作为参考,您可以查看GOOGLE IO提供的pdf。你会发现他们如何建议将dimens.xml用于android的不同设备。例如,请参见下面给出的结构:
res/values/dimens.xml
res/values-small/dimens.xml
res/values-normal/dimens.xml
res/values-xlarge/dimens.xml
例如
In values/dimens.xml
<dimen name="text_size">10dp</dimen>
In values-xlarge/dimens.xml
<dimen name="text_size">20dp</dimen>