思路:首先获取屏幕的宽度和高度,当移动Button 在ACTION_DOWN 的时记录下控件当前的位置坐标,在移动ACTION_MOVE时记录相对上次的坐标,然后算出相对于parent 的View上下左右位置,最后重新layout就可以。
public class DraftTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DisplayMetrics dm = getResources().getDisplayMetrics(); //获取屏幕宽和高 final int screenWidth = dm.widthPixels; final int screenHeight = dm.heightPixels - 50; final Button b=(Button)findViewById(R.id.btn); b.setOnTouchListener(new OnTouchListener(){ //上次view的坐标位置 int lastX, lastY; @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int ea=event.getAction(); Log.i("TAG", "Touch:"+ea); switch(ea){ case MotionEvent.ACTION_DOWN: //按下记录view坐标 lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_MOVE: //移动时记录相对上次的坐标 int dx =(int)event.getRawX() - lastX; int dy =(int)event.getRawY() - lastY; //相对于parent 的View上下左右位置 int left = v.getLeft() + dx; int top = v.getTop() + dy; int right = v.getRight() + dx; int bottom = v.getBottom() + dy; //如果left < 0,则是左移,右边框上次位置加上左移部分 if(left < 0){ left = 0; right = left + v.getWidth(); } // if(right > screenWidth){ right = screenWidth; left = right - v.getWidth(); } //如果top < 0,则是上移,下边框上次位置加上移部分 if(top < 0){ top = 0; bottom = top + v.getHeight(); } if(bottom > screenHeight){ bottom = screenHeight; top = bottom - v.getHeight(); } //重新layout 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; }}); } }
相关推荐
Android按钮拖拽效果,GridView中的按钮的拖拽效果。
实现android按钮拖拽,动画弹出菜单后可进行拖拽,有处理相关功能接口。
Android 拖拽悬浮按钮
android 拖拽图片&拖动浮动按钮到处跑
拖动Button的显示效果,Android按钮拖动显示实例,小编的android编译环境又出问题了,暂时没来得及抓个运行图,不好意思啊,反正是个与按钮有关的Android实例源码,要的就下载吧。
Android 拖动按钮效果源码.rar
Android 拖动按钮效果源码.实例代码,直接打开
Android 拖动按钮效果源码.zip
Android 拖动按钮效果源码.zip源码资源下载Android 拖动按钮效果源码.zip源码资源下载
Android拖动按钮效果源码.zip
Android源码——拖动按钮效果源码.zip
例子比较简单,但是如果有需要此功能的,这个例子可以提供很多提示这个是拖动以后的效果,一个imageview和一个button控件,提供两份代码下载吧,一份是只有一个Button的,另一份就是像上图,就是多了一个imagview!
Android 拖动按钮效果源码.zip项目安卓应用源码下载Android 拖动按钮效果源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
安卓Android源码——拖动按钮效果源码.zip
Android特效按钮点击效果动画从里到外渐变放大散花效果,本例子适合做一些特效的app使用, 使用很简单,直接可以把里面代码拷贝过去, 项目... CircleView实现拖动后圆圈渐变扩大效果。 Android特效按钮点击效果截图
拖动按钮效果源码.zip
android 可全屏拖拽按钮 类似ios assistive touch功能可全屏拖拽 解决了小米手机不显示的情况