Android 以编程方式更改样式

标签 android android-layout

我有 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了吗?在谷歌代码上?这是“谷歌”,他们做得很好。如果您想通过示例学习,那可能是我能想到的最完整的资源。但一开始有点可怕。

这里有太多要说的(很多简单的问题......看起来你真的不知道自己的路,如果不是这样的话抱歉)你最好下载那个源代码树。

当然,valuelayout 文件夹都以透明的方式工作(这就是使用标准的全部意义所在),因此您不需要担心布局(处理键值样式时)和/或运行时(处理样式和布局时)的屏幕变化。

关于Android 以编程方式更改样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256965/

相关文章:

android - CardView如何显示多列?

android - 在android中上传文件以及其他字符串参数

android - MonoTouch+MonoDroid : Common business objects with Images

android - 如何为 Android XML 布局属性使用多个值?

java - 将布局 View 置于顶部

android - 如何自定义抽屉导航项目高度

android - 如何使应用程序中的字体大小不受更改设置字体大小的影响

android - Android 中的相对布局

android - 创建一个 "cut out"布局

android - 在布局的右侧和底部添加阴影