Android之自定义View实现随手势滑动的控件
来源:互联网 发布:淘宝客推广爆款的技巧 编辑:程序博客网 时间:2024/04/29 19:34
Android之自定义View实现随手势滑动的控件
1.新建自定义控件类:MyView
public class MyView extends Button{//记录上次滑动后的坐标值private int lastX;private int lastY;public MyView(Context context) { super(context); // TODO Auto-generated constructor stub}public MyView(Context context, AttributeSet attrs){ super(context, attrs);}@Overridepublic boolean onTouchEvent(MotionEvent event) { // 获取view相对于手机屏幕的xy值 int x=(int) event.getRawX(); int y=(int) event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: int deltaX=x-lastX; int deltaY=y-lastY; int translationX = (int) (ViewHelper.getTranslationX(this) + deltaX); int translationY = (int) (ViewHelper.getTranslationY(this) + deltaY); ViewHelper.setTranslationX(this,translationX); ViewHelper.setTranslationY(this,translationY); break; case MotionEvent.ACTION_UP: break; default: break; } lastX = x; lastY = y; return true;}
上面代码就是一个自定义按钮类,重写onTouchEvent()方法来监听用户滑动,既然说到滑动肯定会存在偏移量的说法。
translationX、translationY是View左上角相对于父布局的偏移量。通过第三方nineoldandroids来实现动画滑动。
ViewHelper.getTranslationY(this)计算该View的偏移量,初始值为0,向左偏移值为负,向右偏移值为正。
2.xml布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.administrator.slide.MyView android:id="@+id/myview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我可以滑动"/></RelativeLayout>
1 0
- Android之自定义View实现随手势滑动的控件
- Android之自定义View实现随手势滑动的小圆球
- Android 自定义View之随手指滑动的ToggleButton
- android自定义数据展示view,随手指滑动实现
- Android实现控件随手指滑动缩放
- 自定义View随手指滑动
- Android自定义随手势滑动的滚动条实现——HorizontalScrollCursor
- 自定义view实现随手移动的圆球
- android自定义滑动开关控件,自定义view
- Android自定义view之环形等待控件的实现
- Android 自定义View:实现View的滑动效果
- Android 自定义View:实现View的滑动效果
- Android 从0开始自定义控件之 View 的滑动(二)
- Android 从0开始自定义控件之 View 的弹性滑动(三)
- 自定义view 小圆点随手指滑动
- android自定义View之重写View来实现全新的控件
- android 自定义view实现可左右滑动的Tabbar
- android:滑动挂断自定义View的简单实现
- canvas 笛卡尔心
- jquery ui dialog
- WeakReference 在android中的应用
- 【功能发布】Crash不好找?Bugly来支招!
- Python 连接FTP
- Android之自定义View实现随手势滑动的控件
- linux常用命令
- Oracle 的函数
- android服务_通过bindService调用服务里的方法
- GOPS2017全球运维大会 • 深圳站嘉宾阵容提前揭晓!!!
- .net平台下C#socket通信
- 色彩空间:RGB、YUV与YCbCr
- 安卓Studio更新版本后无法导入以前的项目
- php面向对象之__toString()