实现拖动效果

xiaoxiao2026-06-09  28

http://www.roiding.com/index.php/archives/211

废话少说,要实现的效果就是在界面上拖动这一个按钮到处跑。

1. 布局文件

view plain copy to clipboard print ? <? xml   version = "1.0"   encoding = "utf-8" ?>   < LinearLayout   xmlns:android = "http://schemas.android.com/apk/res/android"   android:orientation = "vertical"   android:layout_width = "fill_parent"   android:layout_height = "fill_parent" >   < Button   android:id = "@+id/btn_hello"   android:layout_width = "fill_parent"   android:layout_height = "wrap_content"   android:text = "@string/hello"   />   </ LinearLayout >   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/btn_hello" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>

2. 代码

view plain copy to clipboard print ? package  com.roiding.sample;    import  android.app.Activity;  import  android.os.Bundle;  import  android.util.Log;  import  android.view.MotionEvent;  import  android.view.View;  import  android.view.View.OnTouchListener;  import  android.widget.Button;    public   class  Touch  extends  Activity {  /** Called when the activity is first created. */   @Override   public   void  onCreate(Bundle savedInstanceState) {  super .onCreate(savedInstanceState);  setContentView(R.layout.main);    final  Button btn = (Button) findViewById(R.id.btn_hello);    btn.setOnTouchListener( new  OnTouchListener() {  int [] temp =  new   int [] {  00  };    public   boolean  onTouch(View v, MotionEvent event) {    int  eventaction = event.getAction();  Log.i( "&&&""onTouchEvent:"  + eventaction);    int  x = ( int ) event.getRawX();  int  y = ( int ) event.getRawY();    switch  (eventaction) {    case  MotionEvent.ACTION_DOWN:  // touch down so check if the   temp[ 0 ] = ( int ) event.getX();  temp[ 1 ] = y - v.getTop();  break ;    case  MotionEvent.ACTION_MOVE:  // touch drag with the ball   v.layout(x - temp[ 0 ], y - temp[ 1 ], x + v.getWidth()  - temp[ 0 ], y - temp[ 1 ] + v.getHeight());    v.postInvalidate();  break ;    case  MotionEvent.ACTION_UP:  break ;  }    return   false ;  }    });    }  }  相关资源:vue实现拖拽效果
转载请注明原文地址: https://www.6miu.com/read-5049843.html

最新回复(0)