【问题标题】:Android Programmatically Change StyleAndroid 以编程方式更改样式
【发布时间】:2011-06-06 19:26:28
【问题描述】:

我有超过 50 个 XML 布局/页面,需要一种方法来确定每种屏幕类型(小/中/大)的“基本”字体大小。实际上,我需要指定其他内容,例如线性布局的大小。

简而言之,我想区分小型/中型/大型设备的尺寸。

1) 我会在启动期间以编程方式更改 styles.xml 中的文本大小吗?

这个选项很方便,因为我不必制作 150 多个 XML 布局。

2) 我会为这三种尺寸创建三个单独的 XML 布局吗?

我必须复制+粘贴每个样式(*.small、*.med、*.large)...这听起来需要很多工作。

有没有cmets?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    我假设您知道应该使用 Vinay 的回答中所述的可扩展单元:

    http://developer.android.com/guide/practices/screens_support.html

    我强烈建议不要偏离“最佳做法”,除非您真的知道自己在做什么。它只会给你带来麻烦。我不是专业人士,这就是我尝试遵循标准的原因。好的,现在让我们来回答:

    当你想使用不同的尺寸,而可伸缩的单位又不够用时,你必须在某处声明它们。所以无论如何你都要声明不同的文件......这是不可避免的。但话又说回来,只有当您的可扩展单元不足以在不同屏幕上提供所需的视觉效果时。

    为此,您在value 文件夹中声明。您在 Google 代码上看到 Google I/O app source 了吗?这是“谷歌”,他们做得很好。如果您想通过示例学习,那可能是我能想到的最完整的资源。不过刚开始有点吓人。

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

    当然,values 和 layouts 文件夹都以透明的方式工作(这是使用标准的重点),因此您无需担心布局中的屏幕变化(当处理键值样式)和/或在运行时(同时处理样式和布局时)。

    【讨论】:

    • 我看到有: res/ { values/styles.xml, values-small/styles.xml, values-large/styles.xml, values-xlarge.xml } 似乎可以帮助我实现这一目标.此外,分离 res/layouts int {small, '', large, xlarge} 也有帮助。我猜这叫碎片化……
    • 在某种程度上,是的,我猜它被称为碎片化。但是 1)大多数时候你不需要所有这些,如果除了标准之外有任何变化。 2) layout-land 是我真正经常使用的变体,但这是个人的,与碎片化无关。 3)系统允许容易的继承和引用。 4) 你只需要提供特定的变化,你永远不会改变一切,因为你必须找到定制和一致性之间的最佳点。 5) I/O 应用程序除了作为调度程序之外,确实是一个展示代码......(......)
    • (...) 它始终是(大多数是新的)Android 开发人员的范例。 6)随着平板电脑和更大屏幕的增加,这开始变得(甚至)更加相关,这就是碎片化,因为无论如何它是一个有意义的、不同的细分市场。恕我直言,这必须完全被视为开发人员的不同目标,只是该框架允许您在一个包中提供所有内容。 7)我并不是说我们以前没有定制,只是少得多(我通常对 ldpi 做 hdpi 并尽量将定制保持在最低水平)我猜。 (...)
    • (...) 8) 所以是的,只是我有限的技术意见(可能自然是有限的),因为“f”字背后的原因,SO 不是这个地方:)。最好的问候和好运!
    【解决方案2】:

    好吧,我不太确定我是否完全理解您的问题,但您似乎只是担心字体大小,在 XML 中定义 TextSize 时,可以通过使用“缩放像素”(sp) 对其进行标准化。您也可以通过按 Id 获取 TextView 并通过 setTextSize() 方法设置文本大小,以编程方式更改文本大小(您建议的 #1)。

    如果这不是您想要的答案,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      相关资源
      最近更新 更多