在Android中,当我设置一个按钮的背景图片时,当我点击它时,我看不到任何效果。
我需要在按钮上设置一些效果,这样用户就可以识别出按钮被点击了。
单击该按钮时,该按钮应该会变暗几秒钟。该怎么做呢?
发布于 2014-05-13 18:09:36
或者只使用一张背景图片,就可以使用setOnTouchListener实现点击效果
两种方式
((Button)findViewById(R.id.testBth)).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
Button view = (Button) v;
view.getBackground().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
v.invalidate();
break;
}
case MotionEvent.ACTION_UP:
// Your action here on button click
case MotionEvent.ACTION_CANCEL: {
Button view = (Button) v;
view.getBackground().clearColorFilter();
view.invalidate();
break;
}
}
return true;
}
});

如果您不想使用setOnTouchLister,另一种实现方法是
myButton.getBackground().setColorFilter(.setColorFilter(0xF00, Mode.MULTIPLY);
StateListDrawable listDrawable = new StateListDrawable();
listDrawable.addState(new int[] {android.R.attr.state_pressed}, drawablePressed);
listDrawable.addState(new int[] {android.R.attr.defaultValue}, myButton);
myButton.setBackgroundDrawable(listDrawable);https://stackoverflow.com/questions/7175873
复制相似问题