我有 50 多个 XML 布局/页面,需要一种方法来确定每种屏幕类型(小/中/大)的“基本”字体大小。实际上,我需要指定其他内容,例如线性布局的大小。
简而言之,我想区分小型/中型/大型设备的尺寸。
1) 我会在启动期间以编程方式更改 styles.xml 中的文本大小吗?
此选项很方便,因为我不必制作 150 多个 XML 布局。
2) 我会为三种尺寸创建三个单独的 XML 布局吗?
我必须复制并粘贴每个样式(*.small、*.med、*.large)...这听起来需要做很多工作。
有什么意见吗?
最佳答案
我假设您知道应该使用 Vinay 的回答中所述的可扩展单元:
http://developer.android.com/guide/practices/screens_support.html
我强烈建议不要偏离“最佳实践”,除非您真的知道自己在做什么。它只会给你带来麻烦。我不是专业人士,这就是我尝试遵循标准的原因。好的,现在让我们回答:
当你想使用不同的大小,而可扩展的单位是不够的,你必须在某处声明它们。所以你无论如何都要声明不同的文件......这是不可避免的。但话又说回来,只有当您的可扩展单元不足以在不同屏幕上提供所需的视觉效果时。
为此,您在 value
文件夹中声明。你看到Google I/O app source了吗?在谷歌代码上?这是“谷歌”,他们做得很好。如果您想通过示例学习,那可能是我能想到的最完整的资源。但一开始有点可怕。
这里有太多要说的(很多简单的问题......看起来你真的不知道自己的路,如果不是这样的话抱歉)你最好下载那个源代码树。
当然,value
和 layout
文件夹都以透明的方式工作(这就是使用标准的全部意义所在),因此您不需要担心布局(处理键值样式时)和/或运行时(处理样式和布局时)的屏幕变化。
关于Android 以编程方式更改样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256965/