我的应用程序中有一些 ImageButtons,我已经删除了默认的灰色背景
android:background="@android:color/transparent"或者android:background="@null"
问题是,它还删除了 onClick 高亮背景(API8 中的橙色和 API16 中的蓝色)
我在这里阅读了很多问答,人们都建议使用selector. 而不是为每个按钮制作另一个图像,我只想有一个背景颜色突出显示。有没有一种简单的方法可以实现这一目标?
解决方案:以编程方式
导入android.view.View;
导入 android.view.View.OnTouchListener;
// ...
btn.setOnTouchListener(新 OnTouchListener() {
@覆盖
public boolean onTouch(View v, MotionEvent 事件) {
if(event.getAction() == (MotionEvent.ACTION_DOWN)) {
// 设置背景高亮颜色
btn.setBackgroundResource(R.color.blue);
}
if(event.getAction() == (MotionEvent.ACTION_UP)) {
// 恢复透明
btn.setBackgroundResource(
getResources().getColor(android.R.color.transparent));
}
返回假;
}
});
它不是那么简单,但可以完成这项工作并为我节省大量时间为每个按钮制作另一个图像,而我真的不需要花哨的点击样式。