正如标题所说,我在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*/
谢谢你们!
答案 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);
,这更简单。
有人有更好的解决方案吗?