Java android如何动态设置样式/如何读取样式属性
我想为TextView动态设置样式。基于这一点,我发现这似乎是不可能的(除非最近发生了一些变化) 好的,但是朝相反的方向工作呢。例如,我有以下样式定义:Java android如何动态设置样式/如何读取样式属性,java,android,android-layout,textview,Java,Android,Android Layout,Textview,我想为TextView动态设置样式。基于这一点,我发现这似乎是不可能的(除非最近发生了一些变化) 好的,但是朝相反的方向工作呢。例如,我有以下样式定义: <style name="MyTextStyle" parent="@android:style/Widget.Holo.TextView"> <item name="android:textSize">@dimen/text_big</item> <item name="android
<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>
简单地说,我不在java代码中定义颜色,而是从xml文件(但不是从任何xml文件而是从styles.xml)读取当前值,以确保样式定义在任何地方都是相同的
此外,如果我更改应用程序主题,我的代码将选择正确的样式定义,这将非常棒
怎么做
当然,对于textSize和textStyle(斜体、粗体等),我想重复同样的内容
有什么想法吗?也许回答自己的问题不是最好的主意,但我已经找到了答案,也许有一天它会对某人有用 解决办法是:
myTextView.setTextAppearance(myTextView.getContext(), R.styles.MyTextStyle);
这比,例如,
setTextColor
和相关的更优雅。仅在styles.xml中保留样式设置职责,而不是在Java代码中。很好的片段。
myTextView.setTextAppearance(myTextView.getContext(), R.styles.MyTextStyle);