Xperia上的Checkbox背景问题

时间:2014-04-28 08:46:31

标签: android checkbox background sony-xperia

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

myCheckbox.setBackgroundResource(R.drawable.customBackground);

myCheckbox.setBackgroundColor(Color.RED);

也不是

正如this other post on SO中所述,Background方法似乎在Xperia上被打破了。我尝试了给定的修复,它适用于颜色。

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

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

因此我有两个问题:

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

2-如果有人知道,我怎么知道手机是否真的是Xperia?只是做一些像

这样的事情
if( /*phone is Xperia*/ )
    /*Use fix*/
else
    /*Proceed normaly*/

谢谢你们!

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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);,这更简单。

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