1

我有一个电子商务应用程序,为此我设计了一个颜色选择件。我使用自定义 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 将它们缩放后,约为 53x53。看起来它正在将背景缩放到与按钮相同的大小,但随后颜色被混叠在一起

有人知道如何使边缘不那么明显吗?

谢谢!

4

0 回答 0