我想在按钮上添加一些动作。我希望它们在您触摸时改变颜色,并在您向上移动手指时返回原始颜色。但是出了点问题,我无法找到答案。
btn1.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean OnTouch(View v,MotionEvent mevent){
switch(mevent.getAction()){
case MotionEvent.ACTION_UP:{
Toast.makeText(getApplicationContext(),"merhaba",Toast.LENGTH_LONG).show();
Button view=(Button) v;
view.getBackground().clearColorFilter();
view.invalidate();
break; }
case MotionEvent.ACTION_DOWN:{Button view=(Button) v;
view.getBackground().setColorFilter(0x77000000,PorterDuff.Mode.SRC_ATOP);
view.invalidate();
break;
}
case MotionEvent.ACTION_CANCEL:{
Button view=(Button) v;
view.getBackground().clearColorFilter();
view.invalidate();
break;
} }
return true;}
});
有什么问题?
答案 0 :(得分:1)
您可以在drawable xml文件上编写按钮单击效果。示例 button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_image" android:state_pressed="true" />
<item android:drawable="@drawable/background_image" android:state_focused="true" />
</selector>
将此可绘制文件作为按钮的背景。例子
<Button
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textSize="14sp"
android:background="@drawable/button_selector"
android:text="Delete"
android:textStyle="bold"/>
当您点击按钮或专注于按钮时,背景将会改变。