自定义单选按钮 - 边缘流血

时间:2013-06-05 15:02:21

标签: android

我有一个电子商务应用程序,我已经设计了一个颜色选择件。我使用自定义RadioButton和RadioGroup来选择单一颜色。我从服务器下载可能的颜色样本并绘制每个按钮的背景。

问题在于,对于深色,底层图像会渗透,边缘周围会看到微弱的线条。

看起来像这样:

enter image description here

我使用此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>

,其中两部分是:

enter image description here enter image description here

然后我以编程方式在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。看起来它正在将背景缩放到与按钮相同的大小,但随后颜色会混叠在一起

任何人都知道如何使边缘不那么明显?

谢谢!

0 个答案:

没有答案