Android自定义控件8----直接绘制也可完成滑动
来源:互联网 发布:windows文件夹监控 编辑:程序博客网 时间:2024/06/05 15:02
效果图:
核心代码:
/** * 设置滑动事件 */ @Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event);//执行父类的方法 switch (event.getAction()){ case MotionEvent.ACTION_DOWN: Logger.t("666").d("ACTION_DOWN>>>"); //1.记录按下的坐标 lastX=startX = event.getX(); isEnableClick = true; Logger.t("777").d("ACTION_DOWN>>>startX"+startX); break; case MotionEvent.ACTION_MOVE:// 移动一次ACTION_MOVE要执行很多次 Logger.t("666").d("ACTION_MOVE>>>"); //2.计算结束值 float endX = event.getX(); //3.计算偏移量 float distanceX = endX - startX;// slideLeft = (int) (slideLeft + distanceX); slideLeft += distanceX; //4.屏蔽非法值 Logger.t("777").d("distanceX>>>"+distanceX+"endX>>>"+endX+"startX>>>"+startX); Logger.t("777").d("距左边的距离>>>"+slideLeft); if(slideLeft <0){ slideLeft = 0; }else if(slideLeft>slidLeftMax){ slideLeft = slidLeftMax; } //5.刷新,就只重新绘制 invalidate(); //6.数据还原(执行了很多周期的初始值向223.11,224.22......) startX = event.getX(); Logger.t("777").d("ACTION_MOVE>>>startX"+startX);// 判断使用点击事件还是滑动控件 if(Math.abs(endX - lastX) > 5){ //滑动 isEnableClick = false; } break; case MotionEvent.ACTION_UP:// 判断是滑动事件时执行 if(!isEnableClick) { if (slideLeft > slidLeftMax / 2) { //显示按钮开 isOpen = true; } else { isOpen = false; } flushView(); } break; } return true; }
参考视频:
http://www.gulixueyuan.com/course/124/learn#lesson/1905
源码下载:
对应Myself ---- app
http://download.csdn.net/download/zhaihaohao1/10111351
阅读全文
0 0
- Android自定义控件8----直接绘制也可完成滑动
- Android自定义控件9----scrollTo/scrollBy实现滑动和直接绘制滑动的对比使用demo测试
- Android 自定义星星可滑动评分控件
- Android ToggleButton(自定义可滑动的ToggleButton控件)
- Android-自定义可滑动开关控件之SlidingSwitchView
- 【Android】自定义控件实现可滑动的开关(switch)
- Android-自定义可滑动开关控件之SlidingSwitchView
- android 绘制自定义控件
- android 绘制自定义控件
- android 控件绘制完成的监听
- 可滑动可点击,不占全屏的自定义控件
- Android 自定义滑动控件相关
- Android 自定义滑动控件相关
- android 自定义滑动按钮控件
- Android自定义控件---滑动开关
- Android自定义控件:滑动开关机
- Android 自定义感光器控件SolarProgressView,也可当做普通ProgressBar使用
- Android自定义ViewPager可控制是否滑动
- HDU 5673 Robot
- Mono Dev 默认consoles字体,中午字体注释乱码
- AHandler and AMessages
- JAVA基础准备要点---(JAVA初始化顺序)
- const与一级指针二级指针结合
- Android自定义控件8----直接绘制也可完成滑动
- caffe之Data_Layer层代码解析
- [Oracle 11g r2(11.2.0.4.0)]Oracle Golden Gate Training-workshop6
- 查看ORACLE 数据库及表信息
- nodejs之require方法
- chartJS+ajax+ssm简单整合
- 存储设备管理大全,你值得拥有
- 数据库SQL优化大总结之 百万级数据库优化方案
- Spring--java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSource问题解决