android控件跟随手势滑动改变位置
来源:互联网 发布:中日联谊医院网络挂号 编辑:程序博客网 时间:2024/06/05 03:48
private View.OnTouchListener shopCarSettleTouch = new View.OnTouchListener() { int lastX, lastY; @Override public boolean onTouch(View v, MotionEvent event) { int ea = event.getAction(); DisplayMetrics dm = getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels;// int screenHeight = dm.heightPixels - 100;//需要减掉图片的高度 int screenHeight = dm.heightPixels;//需要减掉图片的高度 switch (ea) { case MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX();//获取触摸事件触摸位置的原始X坐标 lastY = (int) event.getRawY(); case MotionEvent.ACTION_MOVE: //event.getRawX();获得移动的位置 int dx = (int) event.getRawX() - lastX; int dy = (int) event.getRawY() - lastY; int l = v.getLeft() + dx; int b = v.getBottom() + dy; int r = v.getRight() + dx; int t = v.getTop() + dy; //下面判断移动是否超出屏幕 if (l < 0) { l = 0; r = l + v.getWidth(); } if (t < 0) { t = 0; b = t + v.getHeight(); } if (r > screenWidth) { r = screenWidth; l = r - v.getWidth(); } if (b > screenHeight) { b = screenHeight; t = b - v.getHeight(); } v.layout(l, t, r, b); Log.e(TAG, "onTouch: " +l+"=="+t+"=="+r+"=="+b); lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); v.postInvalidate(); break; case MotionEvent.ACTION_UP: break; } return true; }};
使用方法:
iv = (ImageView) findViewById(R.id.iv);iv.setOnTouchListener(shopCarSettleTouch);
阅读全文
0 0
- android控件跟随手势滑动改变位置
- android按钮跟随手势滑动改变位置
- Android 指定控件手势滑动
- Android 跟随手指滑动的控件
- android TextView文字跟随seekBar滑动条滑块的位置移动
- 背景图片跟随手势滑动的ViewPager
- android 动态改变控件位置和大小
- Android拖动控件改变其位置
- android 动态改变控件位置和大小
- android 动态改变控件位置和大小
- Android动态改变控件的位置
- Android拖动控件改变其位置
- android ViewPager控件实现手势滑动切换页签
- Android控件跟随手指移动方法补充及在RelativeLayout移动控件控件还原位置问题
- android pageview 类 滑动跟随
- android --小球跟随手指滑动
- android 手势左右滑动
- android手势左右滑动
- C++父类子类间函数重定义,虚函数重写(覆盖)以及重载
- java web实现邮箱的发送
- libpcap抓包程序
- React native安装,配置
- HDU4932 Miaomiao's Geometry
- android控件跟随手势滑动改变位置
- warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- oracle 分析函数
- ResponseUtils
- java和JS代码相互调用
- activemq常用通讯模式介绍
- IntelliJ IDEA 2016注册方法和注册码
- Linux 命令小记
- dorado入门 开始二