我有一个电子商务应用程序,我已经设计了一个颜色选择件。我使用自定义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>
,其中两部分是:
然后我以编程方式在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将它们按比例缩放后,radiobutton图像大约为53x53。看起来它正在将背景缩放到与按钮相同的大小,但随后颜色会混叠在一起
任何人都知道如何使边缘不那么明显?
谢谢!