过往的经验,android上的比较好的触摸效果实现方案:
- /**
- * 触摸事件
- */
- OnTouchListener onTouchListener = new OnTouchListener()
- {
- public boolean onTouch(View v, MotionEvent event) {
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_pressed));
- break;
- case MotionEvent.ACTION_UP:
- v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_normal));
- break;
- case MotionEvent.ACTION_MOVE:
- break;
- default:
- v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_normal));
- break;
- }
- return false;
- }
- };
当然还有另外一种方式,就是放在xml文件中实现
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/button_pressed" android:state_selected="true"/>
- <item android:drawable="@drawable/button_pressed" android:state_focused="true"/>
- <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/>
- <item android:drawable="@drawable/button_normal"/>
- </selector>
该文件存放于drawable目录下
使用时这样使用:
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Button"
- android:background="@drawable/buttonstyle"
- />
这样似乎更简洁
转载于:https://blog.51cto.com/zilla/821872