0

我在我的 android 应用程序中使用了大量的文本视图。我有一个带有圆角形状和颜色属性的 background.xml 文件。我将此背景设置为我的文本视图。如果我有几种不同的颜色作为背景,我可以创建单独的背景 xml。如果我有超过 30 或 40 种不同的颜色要使用,我应该有尽可能多的背景文件吗?

4

2 回答 2

1

您需要维护单个背景文件并为您的文本视图创建所有样式属性,如下所示:

<?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

于 2014-04-28T06:17:25.513 回答
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));
}
于 2017-02-06T11:28:33.877 回答