我有一个口音的颜色,我用在我的布局。我将其定义为应用于TextView的样式。
我的应用程序允许用户在暗主题和轻主题之间进行选择。我想根据选定的主题调整重音颜色。
如何根据选定的主题控制我的重音颜色?
开发指南给出了一个使用自定义颜色的主题示例,这个颜色与我想要的非常接近。我需要能够在运行时改变颜色。我知道我可以进入我的代码和使用这种样式的X位置,我可以提取组件并以这种方式设置颜色。但我认为我可以通过一些风格/主题的结合来实现这一点。
谢谢
发布于 2012-02-07 20:50:28
我解决这个问题的方法是创建android.widget.TextView的子类。我创建了一个TextViewAccented和一个TextViewWarning。我在XML中使用这些TextViews,这里需要重音或警告颜色。我从XML中删除任何颜色引用。
子类包含三个默认构造函数。这三个构造函数都调用一个名为setColor()的私有方法。然后,setColor()检查选定的主题,并根据当前选定的主题使用所需的阴影。
这是一个相当干净的机制,但很难相信我不能在主题中编码。这似乎正是主题应该达到的目的。
https://stackoverflow.com/questions/9117654
复制相似问题