Android下图片可拖动到任意位置的效果
下面为Activity的代码:

public class DraftTest extends Activity { /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.sign);  DisplayMetrics dm = getResources().getDisplayMetrics();  final int screenWidth = dm.widthPixels;     final int screenHeight = dm.heightPixels - 50;     //拖动的按钮  final Button b=(Button)findViewById(R.id.startBtn);    //添加触摸事件  b.setOnTouchListener(new OnTouchListener(){   int lastX, lastY; //记录移动的最后的位置   public boolean onTouch(View v, MotionEvent event) {       //获取Action    int ea=event.getAction();      Log.i("TAG", "Touch:"+ea);    switch(ea){       case MotionEvent.ACTION_DOWN:   //按下     lastX = (int) event.getRawX();        lastY = (int) event.getRawY();        break;        /**        * layout(l,t,r,b)        * l  Left position, relative to parent                       t  Top position, relative to parent                       r  Right position, relative to parent                       b  Bottom position, relative to parent          * */      case MotionEvent.ACTION_MOVE:  //移动     //移动中动态设置位置     int dx =(int)event.getRawX() - lastX;        int dy =(int)event.getRawY() - lastY;        int left = v.getLeft() + dx;        int top = v.getTop() + dy;        int right = v.getRight() + dx;        int bottom = v.getBottom() + dy;        if(left < 0){         left = 0;         right = left + v.getWidth();        }        if(right > screenWidth){         right = screenWidth;         left = right - v.getWidth();        }        if(top < 0){         top = 0;         bottom = top + v.getHeight();        }        if(bottom > screenHeight){         bottom = screenHeight;         top = bottom - v.getHeight();        }        v.layout(left, top, right, bottom);        Log.i("", "position:" + left +", " + top + ", " + right + ", " + bottom);     //将当前的位置再次设置     lastX = (int) event.getRawX();        lastY = (int) event.getRawY();        break;       case MotionEvent.ACTION_UP:   //脱离     break;                     }       return false;      }});    } }

XML配置文件Sign.xml的代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layoutRacingNeedForSpeed" android:padding="0px" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button   android:id="@+id/startBtn"  android:text="tuodongdeanniu"  android:layout_centerInParent="true"  android:layout_width="wrap_content" android:layout_height="wrap_content"/></RelativeLayout>

这样就可以实现了~

更多相关文章

  1. android全屏设置代码:
  2. Android ListView 去除边缘阴影、选中色、拖动背景色等(android:
  3. Android 5.1源代码与Nexus设备工厂镜像下载
  4. Android 自音乐播放器源代码
  5. Android Jni代码示例讲解
  6. Android 多线程之synchronized锁住的是代码还是对象(二)
  7. Android有用代码片断(五)
  8. Android Wi-Fi EAP-SIM代码解析

随机推荐

  1. Android(安卓)RIL结构分析与移植
  2. Android开发包下载
  3. Android应用安全检测工具简介
  4. 《Android/OPhone 开发完全讲义》已出版,
  5. Android(安卓)APN设置
  6. 对Android体系结构的理解--后续会补充
  7. Android(安卓)1.5 SDK, Release 1 翻译完
  8. Android(安卓)SDK 镜像站
  9. TextView设置跑马灯的样式
  10. Android系列之Android开发教程代码实例