在我的应用程序中,按钮的背景应该在用户触摸时更改为另一个按钮,并在手指关闭时返回到原始按钮,我的问题是长时间触摸会使其在触摸时变短一,不!这是我实现的方式:
Button b = (Button) findViewById(R.id.b_bb_e_l);
b.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
b.setBackgroundResource(R.drawable.button_bb_e_l_selec);
break;}
case MotionEvent.ACTION_UP: {
b.setBackgroundResource(R.drawable.button_bb_e_l);
break;}
}
return false;
}
});
答案 0 :(得分:0)
您可以使用drawable
和shape
来实现它。
在btn_bg.xml
res/drawable
这样的文件
btn_bg.xml
的内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_bb_e_l_selected"/>
<item android:drawable="@drawable/button_bb_e_l"/>
</selector>
将背景设置为按钮:
<Button
android:background="@drawable/btn_bg"/>
答案 1 :(得分:0)
如果您不需要使用onTouch,则可以创建背景设置为可绘制的样式。将drawable创建为使用选择器的xml并设置选择器的不同状态,state_pressed =“true”和state_pressed =“false”并将颜色应用于这些状态。然后在所需的按钮上使用该样式。