1

我有ImageButton我的应用程序的布局,我想为此设置圆角ImageButton,所以我使用的样式如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="1dp"
        android:color="@android:color/black" />
    <corners android:radius="15dp" />
    <solid android:color="@android:color/black"/>
</shape>

然后我正在使用android:background="@drawable/my_rounded_shape.xml"/>

问题是,在此之后我想将背景颜色从黑色更改为某种自定义颜色,但我无法以编程方式修改样式,也无法生成带角但颜色不同的新样式并应用于我的ImageButton.

你能澄清一下有什么方法可以做到这一点或任何解决方法吗?

4

2 回答 2

0

试试看:使用名称(例如“SS”)和您的新属性创建另一个 XML 形状

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp"
    android:color="@android:color/red" />
<corners android:radius="10dp" />
<solid android:color="@android:color/blue"/>

然后

Button b = (Button) (findViewById(R.id.button1));
    b.setBackgroundDrawable(getResources().getDrawable(R.drawable.ss));
于 2014-10-05T16:19:54.690 回答
0

一段时间后,我为我的案例提出了解决方案 - 在我的 Java 代码中,我执行以下操作:

GradientDrawable drawable = (GradientDrawable) imageButton.getBackground();
drawable.setColor(color);

这使我可以保存“形状”中描述的圆角并同时更改背景颜色。

于 2014-10-06T08:50:44.880 回答