我正在尝试动态更改小部件背景颜色,但是当我设置背景颜色时,我失去了背景布局的角落(它使用无色形状作为背景)。
换句话说,当我为背景选择自定义颜色并将其应用到背景时,它就像我应用了整个背景可绘制对象一样。
那么如何以其他方式做到这一点,以免丢失布局角落,因为没有角落的小部件看起来很糟糕。
我正在尝试动态更改小部件背景颜色,但是当我设置背景颜色时,我失去了背景布局的角落(它使用无色形状作为背景)。
换句话说,当我为背景选择自定义颜色并将其应用到背景时,它就像我应用了整个背景可绘制对象一样。
那么如何以其他方式做到这一点,以免丢失布局角落,因为没有角落的小部件看起来很糟糕。
最简单的方法是将 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);
我希望这有帮助。