确认代码中设置背景的语句是否正确,可以通过在语句前加上Log,检测是否执行到了设置背景的语句。
尝试使用不同的资源文件或者动态生成Drawable来设置背景,例如:
a. 使用不同的资源文件
在res/drawable目录下,创建不同的背景资源文件,例如button_bg_normal.xml、button_bg_pressed.xml等,在不同的状态下设置不同的背景颜色、边框等。
b. 动态生成Drawable
GradientDrawable drawable = new GradientDrawable();
drawable.setColor(Color.RED);
drawable.setCornerRadius(10);
button.setBackground(drawable);
如果上述方法都不可行,尝试强制按钮刷新背景,例如:
button.invalidate(); button.requestLayout();
如果仍然无效,可能是缓存问题,可以尝试清除缓存,例如:
button.setBackground(null);
再重新设置背景即可。
上一篇:按钮被搞乱了