安卓view滑动控件及方法scrollBy,scrollTo的使用
来源:互联网 发布:淘宝如何做分销商 编辑:程序博客网 时间:2024/06/05 08:36
在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对
Canvas对象进行了一定的操作,例如 : translate(平移)、clipRect(剪切)等,以便达到我们的对该Canvas对象绘制的要求 ,我们可以将这种无边界的视图称为“视图坐标”—–它不受物理屏幕限制。通常我们所理解的一个Layout布局文件只是该视
图的显示区域,超过了这个显示区域将不能显示到父视图的区域中 ,对应的,我们可以将这种有边界的视图称为“布局坐标” —— 父视图给子视图分配的布局(layout)大小。
mScrollX: 该视图内容相当于视图起始坐标的偏移量, X轴方向
mScrollY: 该视图内容相当于视图起始坐标的偏移量, Y轴方向
mScrollX 与 mScrollY 代表我们当前偏移的位置
oldX与oldY代表之前的偏移位置
方法:
scrollBy():移动组件滑动位置,会导致onScrollChanged()方法被调用,和视图会被抛弃。在当前视图内容继续偏移(x , y)个单位,显示(可视)区域也跟着偏移(x,y)个单位。
scrollTo():设置组件滑动位置,同上。在当前视图内容偏移至(x , y)坐标处,即显示(可视)区域位于(x , y)坐标处。
调用View的scrollTo()和scrollBy()是用于滑动View中的内容,而不是把某个View的位置进行改变。
例子:
/*这个方法是发生在左右滑动组件,设置其左右边界,使之到达边界时不超过边界,边界值视具体情况而定*/private void handleMove(MotionEvent ev){ final int historySize = ev.getHistorySize(); final int pointerCount = ev.getPointerCount(); float tx = 0,ty = 0; for(int h=0;h<historySize;h++){ for(int p=0;p<pointerCount;p++){ tx = ev.getHistoricalX(p, h); ty = ev.getHistoricalY(p, h); /*使用getScrollX获得当前滚动组件左边的坐标,小于0则超出了左边界,大于?值则超出了右边界/ if(this.getScrollX() < 0) { scrollTo(0, 0); continue; }else if(this.getScrollX() > this.getWidth()/3*2) { scrollTo(this.getWidth()/3*2,0); continue; } this.scrollBy((int) (x-tx),0); x = tx; y = ty; } } for(int p = 0;p<pointerCount;p++){ tx = ev.getX(p); ty = ev.getY(p); if(this.getScrollX() < 0) { scrollTo(0,0); continue; } else if(this.getScrollX() > this.getWidth()) { scrollTo(this.getWidth(),0); continue; } this.scrollBy((int)(x-tx),0); x = tx; y = ty; } }
0 0
- 安卓view滑动控件及方法scrollBy,scrollTo的使用
- View的滑动之ScrollTo和ScrollBy
- View.scrollBy()与View.scrollTo()的使用
- View.scrollBy()与View.scrollTo()的使用
- View.scrollBy()与View.scrollTo()的使用
- Android View 的scrollTo 和 scrollBy方法
- android View的scrollTo,scrollBy方法详解
- View的scrollTo/scrollBy
- View滑动的原理,解析scrollTo,ScrollBy和Scroller
- Android自定义控件7----滑动动画scrollTo/scrollBy使用
- View的scrollTo和scrollBy
- Android 滑动scrollBy()和scrollTo()两个方法的简单认识
- View调用scrollTo()、scrollBy()的理解及使用(移动内容而非位置)
- view的scrollTo和scrollBy方法的区别
- android中View类的scrollBy()与scrollTo()方法
- Android自定义控件9----scrollTo/scrollBy实现滑动和直接绘制滑动的对比使用demo测试
- scrollTo 以及 scrollBy方法使用
- View移动(scrollTo()、scrollBy()方法)
- CSS盒子经典模型
- [1] 亲密性原则
- ListFragement的使用
- [2] 对齐原则
- 如何防护神器Mimikatz对域环境进行渗透
- 安卓view滑动控件及方法scrollBy,scrollTo的使用
- 让编译器展开循环
- 148. Sort List
- 常量和变量
- 2.1SDCard相关知识
- Java编程--关于JNI你应该知道的一切
- [3] 重复原则
- 2016 第七届蓝桥杯 c/c++ B组省赛感受
- 深入了解java和javascript-杂谈章