0

正如标题所说,我Checkbox Background在 Xperia 手机上遇到了问题。该代码在除 Xperia 之外的所有设备上都运行良好。它只是没有显示背景。

myCheckbox.setBackgroundResource(R.drawable.customBackground);

也没有myCheckbox.setBackgroundColor(Color.RED);

正如关于 SO 的另一篇文章所述,BackgroundXperia 上的方法似乎已损坏。我尝试了给定的修复程序,它适用于颜色。

myCheckbox.setDrawingCacheEnabled(true);
myCheckbox.setDrawingCacheBackgroundColor(Color.RED);

问题是我没有setDrawingCacheBackgroundResource(int)方法。

因此有我的两个问题:

1-有人知道如何解决吗?

2-如果有人知道,我怎么知道手机是否真的是 Xperia?只是做类似的事情

if( /*phone is Xperia*/ )
    /*Use fix*/
else
    /*Proceed normaly*/

多谢你们 !

4

2 回答 2

0

xperia 的 setBackgroundColor() 存在一些问题。但它适用于 setDrawingCacheBackgroundColor();

CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox1);
checkBox.setDrawingCacheEnabled(true);
checkBox.setDrawingCacheBackgroundColor(Color.RED);

如果您想获得手机制造商和型号,您可以使用它,

String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
于 2014-04-28T09:07:06.267 回答
0

我试过这个,但我发现它并不令人满意:

myCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton checkbox, boolean checked)
    {
        layout_checkboxsubstitute.setBackgroundResource(checked ? R.drawable.customBackgroundStateOn : R.drawable.customBackgroundStateOff);
    }
});

我创建了一个Layout并显示它而不是Checkbox它本身。Background我必须手动更改。我宁愿留下myCheckbox.setBackgroundResource(R.drawable.customBackground);更简单的方法。

有人有更好的解决方案吗?

于 2014-04-28T09:26:51.403 回答