Android - 在运行时更改可绘制颜色

时间:2014-01-21 04:49:39

标签: java android android-drawable

我在 Android 应用程序中的表格布局中使用了 drawable 。我想在点击事件上更改单元格颜色。是否可以在运行时更改drawable的颜色。我的绘画是,

<?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape= "rectangle"  >
        <solid android:color="#FFFFFF"/>
        <stroke android:width="1dp"  android:color="#483D8B"/>
</shape>

我想用click事件更改白色“#FFFFFF”。可以java编辑XML可绘制文件中的颜色。可能吗。 我只是编辑了背景颜色,它分散了可绘制的边框。

String StatusColor=GetColor(Retailer_x.getStatus());
Stts.setBackgroundColor(Color.parseColor(StatusColor));

需要帮助。谢谢!!!!

2 个答案:

答案 0 :(得分:3)

ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
                        sd1.getPaint().setColor(CommonUtilities.color);
                        sd1.getPaint().setStyle(Style.STROKE);
                        sd1.getPaint().setStrokeWidth(CommonUtilities.stroke);
                        sd1.setPadding(15, 10, 15, 10);

                        sd1.getPaint().setPathEffect(
                                new CornerPathEffect(CommonUtilities.corner));
                        ln_back.setBackgroundDrawable(sd1);

答案 1 :(得分:1)

使用表格单元格背景的selector来更改用户单击表格单元格时的状态。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">


    <!-- selected -->
    <item android:drawable="@drawable/red_drawable" android:state_selected="true"/>
    <!-- focused -->
    <item android:drawable="@drawable/gray_drawable"/>
    <!-- default -->

</selector>