Android不同textview与不同的圆角边缘和颜色背景

时间:2014-04-28 06:05:12

标签: android textview android-drawable android-shape

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

2 个答案:

答案 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));
}