2

我正在尝试动态更改小部件背景颜色,但是当我设置背景颜色时,我失去了背景布局的角落(它使用无色形状作为背景)。

换句话说,当我为背景选择自定义颜色并将其应用到背景时,它就像我应用了整个背景可绘制对象一样。

那么如何以其他方式做到这一点,以免丢失布局角落,因为没有角落的小部件看起来很糟糕。

4

1 回答 1

4

最简单的方法是将 ImageView 作为背景添加到您的主布局 (fill_parent) 中,并将其背景设置为 @drawable/background_with_corners,其代码如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
     <corners android:radius="3dp" />
</shape>

然后从您的代码调用remoteViews.setInt(R.id.backgroundimage, "setColorFilter", color);中将所选颜色应用于保留形状的图像。

如果你的颜色有透明度调用remoteViews.setInt(R.id.backgroundimage, "setImageAlpha", Color.alpha(color);如果 SDK>=16; 别的remoteViews.setInt(R.id.backgroundimage, "setAlpha", Color.alpha(color);

我希望这有帮助。

于 2013-10-23T19:58:19.227 回答