拖拽图片效果的实现其实也很简单,只要对需要拖拽的图片设置一个TouchListener即可,在Listener的方法里边对图片的位置进行计算更改就可以达到效果了。具体实现如下:

1.Activity

 

  1. import android.app.Activity; 
  2. import android.os.Bundle; 
  3. import android.view.MotionEvent; 
  4. import android.view.View; 
  5. import android.view.View.OnTouchListener; 
  6. import android.widget.ImageView; 
  7.  
  8. public class DragPicActivity extends Activity { 
  9.  
  10.     private ImageView p_w_picpathView; 
  11.     @Override 
  12.     protected void onCreate(Bundle savedInstanceState) { 
  13.         super.onCreate(savedInstanceState); 
  14.         setContentView(R.layout.drag); 
  15.         p_w_picpathView = (ImageView) findViewById(R.id.drag_pic); 
  16.          
  17.         p_w_picpathView.setOnTouchListener(new OnTouchListener() { 
  18.              
  19.             private float x, y; 
  20.             private int mx, my; 
  21.             @Override 
  22.             public boolean onTouch(View v, MotionEvent event) { 
  23.                 switch (event.getAction()) { 
  24.                 case MotionEvent.ACTION_DOWN: 
  25.                     x = event.getX(); 
  26.                     y = event.getY(); 
  27.                 case MotionEvent.ACTION_MOVE: 
  28.                     mx = (int) (event.getRawX() - x); 
  29.                     //减去的50是title和status bar的高度 
  30.                     my = (int) (event.getRawY() - y - 50); 
  31.                     v.layout(mx, my, mx + v.getWidth(), my + v.getHeight()); 
  32.                     break
  33.                 } 
  34.                  
  35.                 return true
  36.             } 
  37.         }); 
  38.     } 
  39.      

2.layout

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent" 
  5.     android:gravity="center" 
  6.     android:orientation="vertical" > 
  7.  
  8.     <ImageView 
  9.         android:id="@+id/drag_pic" 
  10.         android:layout_width="50dip" 
  11.         android:layout_height="50dip" 
  12.         android:src="@drawable/ic_launcher" /> 
  13.  
  14. </LinearLayout> 

这样拖拽图片的效果就出来了,同样的拖拽其他控件应该也是一样的做法,没测试,但拖拽图片其实就是拖拽ImageView嘛,so easy是吧!

记录学习的点点滴滴,让知识掌握得更牢固。也为回忆,嘿嘿~~Come on,Iceshow!