android 控件跟随手指移动
16lz
2021-01-23
项目中遇到控件跟随手指触摸移动的部分,简单测试了下。
package com.example.viewanimationtest;/** * @author maria * 2013-2-16 */import android.os.Bundle;import android.app.Activity;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.RelativeLayout;public class MainActivity extends Activity implements OnTouchListener {Button _view;ViewGroup _root;private int _xDelta;private int _yDelta;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);_root = (ViewGroup) findViewById(R.id.root);_view = (Button) findViewById(R.id.id_text);RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 50);layoutParams.leftMargin = 50;layoutParams.topMargin = 50;layoutParams.bottomMargin = -250;layoutParams.rightMargin = -250;_view.setLayoutParams(layoutParams);_view.setOnTouchListener(this);}public boolean onTouch(View view, MotionEvent event) {final int X = (int) event.getRawX();final int Y = (int) event.getRawY();switch (event.getAction() & MotionEvent.ACTION_MASK) {case MotionEvent.ACTION_DOWN:RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();_xDelta = X - lParams.leftMargin;_yDelta = Y - lParams.topMargin;break;case MotionEvent.ACTION_UP:break;case MotionEvent.ACTION_POINTER_DOWN:break;case MotionEvent.ACTION_POINTER_UP:break;case MotionEvent.ACTION_MOVE:RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();layoutParams.leftMargin = X - _xDelta;layoutParams.topMargin = Y - _yDelta;layoutParams.rightMargin = -250;layoutParams.bottomMargin = -250;view.setLayoutParams(layoutParams);break;}_root.invalidate();return true;}}
.xml
更多相关文章
- android 自定义控件实现波浪效果(八)
- android 自定义控件pickview
- 控件布局_FrameLayout(网格布局)
- Android控件开发之三----Button
- android开源系列:CircleImageView自定义圆形控件的使用
- android 调用系统通讯录添加联系人,并将号码传值到相应的控件内
- Android之获取控件的坐标
- 控件:ExpandableListView --- 树型组件
- Android拖动控件改变其位置