如何更改小部件背景颜色而不会丢失它的布局角落?

时间:2013-10-23 19:58:19

标签: android colors background widget

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

换句话说,当我为背景选择自定义颜色并将其应用于背景时,它会起到应用整个背景可绘制的作用。

那么如何以其他方式完成,以免丢失布局角落,因为没有角落,小部件看起来很糟糕。

1 个答案:

答案 0 :(得分: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);将所选颜色应用于保留形状的图像。

如果SDK&gt; = 16,如果您的颜色具有透明度,请致电remoteViews.setInt(R.id.backgroundimage, "setImageAlpha", Color.alpha(color);;别的remoteViews.setInt(R.id.backgroundimage, "setAlpha", Color.alpha(color);

我希望这会有所帮助。