过往的经验,android上的比较好的触摸效果实现方案:

 

  1. /** 
  2.      * 触摸事件 
  3.      */ 
  4.     OnTouchListener onTouchListener = new OnTouchListener() 
  5.     { 
  6.  
  7.         public boolean onTouch(View v, MotionEvent event) { 
  8.             switch (event.getAction()) { 
  9.             case MotionEvent.ACTION_DOWN: 
  10.                 v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_pressed)); 
  11.                 break
  12.             case MotionEvent.ACTION_UP: 
  13.                 v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_normal)); 
  14.                 break
  15.             case MotionEvent.ACTION_MOVE: 
  16.                 break
  17.             default
  18.                 v.setBackgroundDrawable(Util.getNinePatchDrawable(R.drawable.button_normal)); 
  19.                 break
  20.             } 
  21.             return false
  22.         } 
  23.     }; 

 当然还有另外一种方式,就是放在xml文件中实现

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  3.  
  4.     <item android:drawable="@drawable/button_pressed" android:state_selected="true"/> 
  5.     <item android:drawable="@drawable/button_pressed" android:state_focused="true"/> 
  6.     <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> 
  7.     <item android:drawable="@drawable/button_normal"/> 
  8.  
  9. </selector> 

该文件存放于drawable目录下

使用时这样使用:

 

  1. <Button 
  2.         android:id="@+id/button1" 
  3.         android:layout_width="wrap_content" 
  4.         android:layout_height="wrap_content" 
  5.         android:text="Button" 
  6.         android:background="@drawable/buttonstyle"  
  7.         /> 

这样似乎更简洁