我在我的Android应用程序中使用了大量的文本视图。我有一个background.xml文件,其边缘的形状和颜色属性。我将此背景设置为我的textview。如果我有几种不同的颜色作为背景,我可以创建单独的背景xmls。如果我有超过30或40种不同颜色可供使用,我应该拥有尽可能多的背景文件吗?
答案 0 :(得分:1)
您需要维护单个背景文件并为文本视图创建所有stying属性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="style_1" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">#FFA500</item>
<item name="android:textColor">#FFA500</item>
</style>
<style name="style_3" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">#FFA500</item>
<item name="android:textColor">#FFA500</item>
</style>
<style name="style_n" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">#FFA500</item>
<item name="android:textColor">#FFA500</item>
</style>
</resources>
有关样式,请参阅:http://developer.android.com/guide/topics/ui/themes.html
答案 1 :(得分:1)
你可以在Java代码中使用带有动态颜色的PaintDrawable,如下所示。
final TextView hint = (TextView) layout.findViewById(R.id.txt_hint);
hint.setTextColor(Color.WHITE);
PaintDrawable paintDrawable1=new PaintDrawable(getRandomColor());
paintDrawable1.setCornerRadius(20f);
hint.setBackground(paintDrawable1);
private int getRandomColor(){
Random rnd = new Random();
return Color.argb(255, rnd.nextInt(256), rnd.nextInt(56), rnd.nextInt(256));
}