ウィジェットの背景色を動的に変更しようとしていますが、背景色を設定すると背景レイアウト (背景として無色の形状を使用) の角が失われます。
つまり、背景にカスタム カラーを選択し、それを背景に適用すると、背景のドローアブル全体を適用したように機能します。
コーナーがないとウィジェットの見栄えが悪いため、レイアウトのコーナーを失わないようにするために、これを他の方法で行うにはどうすればよいでしょうか。
ウィジェットの背景色を動的に変更しようとしていますが、背景色を設定すると背景レイアウト (背景として無色の形状を使用) の角が失われます。
つまり、背景にカスタム カラーを選択し、それを背景に適用すると、背景のドローアブル全体を適用したように機能します。
コーナーがないとウィジェットの見栄えが悪いため、レイアウトのコーナーを失わないようにするために、これを他の方法で行うにはどうすればよいでしょうか。
これを行う最も簡単な方法は、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);
これが役立つことを願っています。