【问题标题】:android how to set dynamically style / how to read style attributesandroid如何动态设置样式/如何读取样式属性
【发布时间】:2013-11-05 19:28:48
【问题描述】:

我想为 TextView 设置动态样式。基于此,我发现这似乎是不可能的(除非最近发生了变化)。

好的,但是在相反的方向工作呢?前任。我有以下样式定义:

<style name="MyTextStyle" parent="@android:style/Widget.Holo.TextView">
    <item name="android:textSize">@dimen/text_big</item>
    <item name="android:textColor">@android:color/holo_blue_light</item>
    <item name="android:textStyle">italic</item>
</style>

现在我想要以下代码(类似的):

myTextView.setTextColor (R.styles.MyTextStyle.getTextColor)

只是我没有在 java 代码中定义颜色,而是从 xml 文件中读取当前值(但不是从任何 xml 文件中而是从 styles.xml 中读取,只是为了保证样式定义在任何地方都是相同的)。

此外,如果我更改应用主题时我的代码能够选择正确的样式定义,那就太好了。

怎么做?

当然,我想为 textSize 和 textStyle(斜体、粗体等)重复相同的内容。

有什么想法吗?

【问题讨论】:

    标签: java android android-layout textview


    【解决方案1】:

    也许回答自己的问题不是最好的主意,但我找到了答案,也许有一天它会对某人有用......

    解决办法是:

    myTextView.setTextAppearance(myTextView.getContext(), R.styles.MyTextStyle);
    

    【讨论】:

    • 这比setTextColor 和相关的更优雅。仅将样式责任保留在 styles.xml 中,而不保留在 Java 代码中。很棒的sn-p。
    猜你喜欢
    • 2017-06-09
    • 2021-05-02
    • 1970-01-01
    • 2014-10-17
    • 2013-04-03
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多