色の選択部分をデザインした e コマース アプリがあります。カスタムの RadioButton と RadioGroup を使用して単一の色を選択します。サーバーから可能な色見本をダウンロードし、各ボタンの背景をペイントします。
問題は、暗い色の場合、下にある画像がにじみ、エッジの周りにかすかな線が見えることです.
次のようになります。
この XML ファイルでカスタム ボタンを定義しました。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:drawable="@drawable/color_radio_unselected" />
<item android:state_checked="true"
android:drawable="@drawable/color_radio_selected"/>
</selector>
その2つの部分は次のとおりです。
次に、Java で背景を次のようにプログラムでペイントします。
color = new RadioButton[MAX_COLORS];
color[0]= (RadioButton)findViewById(R.id.color0);
color[1] = (RadioButton)findViewById(R.id.color1);
color[2] = (RadioButton)findViewById(R.id.color2);
color[3] = (RadioButton)findViewById(R.id.color3);
color[4] = (RadioButton)findViewById(R.id.color4);
<snip>
Drawable d = new BitmapDrawable(getResources(),productDetails.colorSwatchBM.get(thisColor));
if (sdkVersion < 16) {
color[i].setBackgroundDrawable(d);
}
else {
color[i].setBackground(d);
}
サーバーから取得した色見本はわずか 27x27 ピクセルであり、ラジオボタンの画像は、Android が縮尺を変更した後、約 53x53 です。背景をボタンと同じサイズにスケーリングしているように見えますが、色が一緒にエイリアスされます
エッジを目立たなくする方法を知っている人はいますか?
ありがとう!