1. package com.phoenix.weather.activity; 
  2.  
  3. import android.os.Bundle; 
  4. import android.view.MotionEvent; 
  5. import android.view.View; 
  6. import android.view.View.OnClickListener; 
  7. import android.view.View.OnFocusChangeListener; 
  8. import android.view.View.OnTouchListener; 
  9. import android.widget.ImageButton; 
  10.  
  11. import com.phoenix.myweather.R; 
  12.  
  13. public class CityActivity extends BaseActivity { 
  14.     private ImageButton btnAdd; 
  15.     @Override 
  16.     protected void onCreate(Bundle savedInstanceState) { 
  17.         super.onCreate(savedInstanceState); 
  18.         setContentView(R.layout.activity_city); 
  19.          
  20.         btnAdd = (ImageButton)findViewById(R.id.p_w_picpathButton_addCity); 
  21.          
  22.         /*btnAdd.setOnFocusChangeListener(new OnFocusChangeListener(){ 
  23.             @Override 
  24.             public void onFocusChange(View v, boolean hasFocus) { 
  25.                 // TODO Auto-generated method stub 
  26.                 if(hasFocus){ 
  27.                     System.out.println("pressed"); 
  28.                     btnAdd.setImageResource(R.drawable.city_grid_bg_pressed); 
  29.                 }else{ 
  30.                     btnAdd.setImageResource(R.drawable.city_grid_bg); 
  31.                 } 
  32.             }                    
  33.         });*/ 
  34.          
  35.         btnAdd.setOnTouchListener(new OnTouchListener(){ 
  36.             @Override 
  37.             public boolean onTouch(View v, MotionEvent event) { 
  38.                 // TODO Auto-generated method stub 
  39.                 if(event.getAction()==MotionEvent.ACTION_DOWN){ 
  40.                     System.out.println("pressed"); 
  41.                     btnAdd.setImageResource(R.drawable.city_grid_bg_pressed); 
  42.                 }else if(event.getAction()==MotionEvent.ACTION_UP){ 
  43.                     System.out.println("released"); 
  44.                     btnAdd.setImageResource(R.drawable.city_grid_bg); 
  45.                 } 
  46.                 return false; 
  47.             } 
  48.              
  49.         }); 
  50.          
  51.         btnAdd.setOnClickListener(new OnClickListener(){ 
  52.             @Override 
  53.             public void onClick(View v) { 
  54.                 // TODO Auto-generated method stub 
  55.                 System.out.println("clicked"); 
  56.                 btnAdd.setImageResource(R.drawable.city_grid_bg_pressed); 
  57.             }            
  58.         });                   
  59.     }   

 运行后点击p_w_picpathbutton,截图:

android ontouch onclick 触发顺序_onclick_02