android scroll的小理解

编写 Android 触摸屏手势识别程序 很多时候,利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相 关的例子,API Dem 阅读详情

最近在项目里,需要用到滑动scroll,特别是涉及多个图片联动滚动滑动和带有嵌套Layout的滚动滑动。项目需求显示用gallery或ViewPager都无法满足要求。

所以自定义的view,实现滑动滚动迫在眉睫,特点将scrollBy及scrollTo与scroller小提一把。

1、scrollBy 是将view从当前的位置移偏(相对于原来的点)滑动到到某个点,比如原来的点是(100,10) 那么 scrollBy(20,10) 后为(120,20)

2、scrollBy 是将view从当前的位置滑动到到某个点,比如原来的点是(100,10) 那么 scrollBy(20,10) 后为(20,10)

3、scroller类有个startScroll(startX, startY, dx, dy, duration)方法,代表用外部的scroller滑动滚动器来模拟滚动。用四个参数的方法时duration默认250ms。

      用此方法时,当scroller开始滑动滚动时,可以通过getFinalX获取此scroller相对于原来在x轴移动的偏移量,当把这些偏移量就可以获取到每一次,scroller移动点了哪点,有了这个值,就可以将自定义的view,重新设置layout(l,t,r,b).

     

     另附上scroller类还有个computeScrollOffset()方法,是用于返回告诉用户,此scroller是否滑动完了。当没有滑动完时返回true,滑动完了返回false。那么这个功能有什么应用场景呢?

    比如,需要自定义的view有个动画的效果,一步步的滑动,那么就可以用此方法if判断下,若没有滑完,再用scroller.getCurrX获取此scroller滑动的绝对X轴位置,此时就可以让自定义的view也scrollerTo(scroller.getCurrx,0),再invalidate掉view重新进行if判断,不就可以实现动画的连接的滑动了。


关于layout与mesure,可以参考自定义的view。

http://blog.youkuaiyun.com/chenshufei2/article/details/8296902


Android的事件分发 一、Touch事件和绘制事件的异同之处Touch事件和绘制事件很类似,都是由ViewRoot派发下来的,但是不同之处在绘制事件是由应用中的某个View发起请求,一层一层上传到ViewRoot,再有ViewRoot下发绘制,传递canvas给所有子View让其绘制自身,绘制好后,再通知WMS进行画到屏幕上。而Touch事件是由硬件捕获到触摸后由系统传递给应用的ViewRoot,再由ViewRoot往下 阅读详情

相关推荐

android进阶篇02、RecyclerView回收复用机制源码解析

RecycledViewPool如下所示,先看注释2处的内部类ScrapData,注释3处的mScrapHeap就是缓存ViewHolder的ArrayList,注释4处表示最大容量为5,即可以缓存ViewHolder的个数为5;好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。如下所示,注释1处表示又会调用fill方法,官方注释表示这是一个神奇的方法,回收与复用共同的入口;

fghis的博客 1036

android 滑动相关(一) : OnScrollListener

.new OnScrollListener() {2.    boolean isLastRow = false;3.4.    @Override5.    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {6.        //滚动时一

ouyben 800

android之OnScrollListener 下拉刷新

android之OnScrollListener 下拉刷新

android onscroll 参数说明,Android Scroller 介绍与使用说明

Scroller 是一个帮助 View 滚动的辅助类,在使用它之前,用户需要通过 startScroll() 来设置滚动的参数,即起始点坐标和 (x,y) 轴上要滚动的距离。Scroller 它封装了滚动时间(默认的滚动时间为 250 毫秒)、要滚动的目标 x 轴和 y 轴,以及在每个时间内 View 应该滚动到的 (x,y) 轴的坐标点,这样用户就可以在有效的滚动周期内通过 Scroller 的...

weixin_39978257的博客 992

Chromatix_AEC—深入解析曝光表配置与传感器参数计算

本文深入解析高通Chromatix AEC模块中的曝光表配置与传感器参数计算,详细介绍了自动曝光控制(AEC)的核心概念、首行曝光时间计算、行时间与曝光模式对比、帧率计算逻辑以及曝光表高级配置技巧。通过实战案例展示如何优化传感器参数联调,帮助开发者掌握Chromatix工具在摄像头系统中的关键应用。

266

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6403

android RecyclerView的滚动事件OnScrollListener详解

RecyclerView.canScrollVertically(-1)的值表示是否能向上滚动,false表示已经滚动到顶部。其中,direction为 -1 表示手指向下滑动(屏幕向上滑动), 1 表示手指向上滑动(屏幕向下滑动)。2.手指按下 -> 手指快速拖拽后抬起手指 -> 列表继续滚动 -> 停止滚动。1.手指按下 -> 手指拖拽列表移动 -> 手指停止拖拽 -> 抬起手指。dx > 0 时为手指向左滚动,列表滚动显示右面的内容。dy > 0 时为手指向上滚动,列表滚动显示下面的内容。

安卓兼职framework和app工程师的博客 1万+

qPCR定量方法在肠道微生物特定种属定量应用

大家都知道肠道中有上千种细菌,肠道微生物可参与人体代谢,促进营养物质的消化吸收,肠道微生态均衡关系到身体健康,肠道微生态失衡可能会导致疾病产生。此外有文献指出肠道微生物可能与人体免疫及炎性反应等有关。目前也越来越多人关注到疾病与肠道微生物的关系,也做了很多研究及实验,一般高通量结果得到的是每个物种在样本中的相对百分含量,而不同微生物的绝对含量其实也对疾病有很重要的影响。在此分享几篇有采用qPCR方法研究疾病与肠道微生物关系的文章。 早在2013年Kim-Anne Lê1、Yan Li等人发表文章Alter

tinygene的博客 2143

android onscroll参数,Android中自定义ScrollView代码实例

public class ObservableScrollView extends ScrollView {public ObservableScrollView(Context context) {super(context);}public ObservableScrollView(Context context, AttributeSet attrs) {super(context, att...

weixin_30646537的博客 381

MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出

MS2107 是一款视频和音频采集芯片,支持CVBS转USB2.0 ;可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。

TEL18967112838的博客 2075

人形机器人电路板和算法分析

人形机器人电路板与算法深度剖析 电路板领域:人形机器人电子系统分为计算、驱动、感知、能源、通信五大模块。主控板采用高性能SoM(如NVIDIA Jetson AGX Orin),需满足严格电源完整性(PDN)与信号完整性(SI)要求;关节驱动板集成MCU、GaN/SiC功率器件及高精度编码器接口,采用刚柔结合PCB以适应狭小空间。挑战包括热-振可靠性(85°C/10G振动)、高密度互连(3mil线宽)及EMC兼容性。 算法领域:运动控制依赖MPC(模型预测控制)与强化学习(RL),实现实时动态平衡;感知算法

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 305

android 中view 的scroll系列方法的理解

android的view中有一系列scroll的方法。

JavaLive09的专栏 1900

从 Token 到 Agent:一文串起 AI 大模型核心概念

摘要:本文系统解析了现代AI系统的八大核心概念:Token(语言处理的最小单位)、Context(AI的短期记忆)、Prompt(指令接口)、Tool(能力扩展器)、MCP(工具生态协议)、Agent(自主智能体)和AgentSkill(专业技能封装)。文章揭示了这些概念如何共同构成AI从基础语言理解到自主决策的技术脉络,重点阐述了Token对计算成本的影响、Prompt工程的重要性、Tool如何突破AI的能力边界,以及Agent如何通过"感知-规划-执行-反思"循环完成复杂任务。最后指

jundao1997的专栏 249

android scroll,Android 详细分析AppBarLayout的五种ScrollFlags

在前面两篇MD系列的文章中,通过两个案例基本上能够掌握了CoordinatorLayout与AppBarLayout的配合使用。本文我们回过头来详细聊聊AppBarLayout的ScrollFlags属性,了解一下不同值之间的区别。至此,Android Material Design系列的学习已进行到第七篇,大家可以点击以下链接查看之前的文章:ScrollFlags共有五种常量值供AppBarLa...

weixin_29635919的博客 298

功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发

本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。

initiallizer的博客 917

YOLOv8人工智能与深度学习——强化学习

本文介绍了将YOLOv8目标检测模型与强化学习结合的方法。主要应用包括自适应目标检测(动态调整检测参数)、主动学习(智能选择标注样本)和多目标跟踪优化。实现方案采用深度Q网络策略,通过定义状态表示、动作空间和奖励函数,使检测系统能根据环境反馈优化性能。该方法具有自适应优化、资源高效、持续改进等优势,能构建更智能的计算机视觉系统。文章详细说明了强化学习环境的构建、策略网络的实现以及训练过程,并提供了代码示例。

u010117029的博客 259

关于android的坐标及Scroll问题

说来说去都不如 画图示意 简单易懂啊!!!真是的! 来吧先上张图! (一)首先明确一下 android 中的坐标系统 : 屏幕的左上角是坐标系统原点(0,0) 原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向 (二)关于Scroll: 屏幕显示的内容很多时,会有超出一屏的情况,于是就产生了Scroll的概念。 在View类中有个方法: ...

weixin_30597269的博客 135

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

简述Android触摸屏手势识别

推荐安卓开发神器(里面有各种UI特效和android代码库实例) 很多时候,利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了...

xSTARx 128

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android平滑移动——Scroller类研究,太厉害了

2、computeScrollOffset()方法: public boolean computeScrollOffset() { if (mFinished) { return false; } int timePassed = (int)(AnimationUtils.currentAnimationTimeMillis() - mStartTime); if (timePassed < mDuration) { switch (mMode) { case SCROLL_MODE: float x

m0_64382868的博客 685

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AgentCPM-GUI任务执行流程深度剖析:从屏幕图像输入到动作输出的全过程

AgentCPM-GUI是一款强大的本地GUI代理,专为操作Android应用程序设计,通过强化微调增强推理能力,实现高效的任务执行。本文将深入解析其从屏幕图像输入到动作输出的完整流程,帮助新手和普通用户更好地理解这一先进工具的工作原理。 ## 图像输入与预处理:视觉信息的捕获与解析 AgentCPM-GUI的任务执行流程始于屏幕图像的获取。系统通过屏幕捕获技术获取Android设备的当前界面

gitblog_00255的博客 473

Android 详细分析AppBarLayout的五种ScrollFlags

ScrollFlags共有五种常量值供AppBarLayout的Children View使用,在xml布局文件中通过设置,对应的值为:scroll,enterAlways,enterAlwaysCollapsed,snap,exitUntilCollapsed; 下面我们通过官网介绍、XML代码和对应的效果图分别分析这五种值的使用(备注:代码中设置也一样,不再赘述):Child View 伴随着滚动事件而滚出或滚进屏幕。注意两点:第一点,如果使用了其他值,必定要使用这...

a2923790861的博客 1175

【Android】Gesture Detector

Gesturedetector   Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。   这些Gesture会使用户体验大大提升。Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。 Andr...

weixin_30607659的博客 122

Android中导航栏滚动标志app:layout_scrollFlags详解

1.app:layout_scrollFlags属性介绍 前面介绍AppBarLayout和CollapsingToolbarLayout用法的时候,用到了app:layout_scrollFlags属性。其实这个滚动标志属性来自于AppBarLayout,它用来定义下级控件的具体滚动行为,比如说是先滚还是后滚,是滚一半还是全部滚,是自动滚还是手动滚等等。 2.不同滚动行为的场景 AppBarLayout的滚动依赖于页面主体的滚动,与页面主体相对应的,可将AppBarLayout称作页面头部。既然一个

水月洞天 3839

Android Gesture Detector的用法

感谢android中国开发者的众多先驱,本文主要内容来自于总结,一小部分是自己的体会。主要参考文章为:   http://www.williamhua.com/2009/04/23/android-touchscreen-gesture-recogniton/ http://goro.iteye.com/blog/402163   Android Touch Screen 与传统Clic

YUZHIBOYI的专栏 1964

『Android-技能篇』优雅的转场动画之-Transition---掘金技术征文-双节特别篇(1)

其实Transition记录当前状态的属性值,比如位置大小或者自定义属性之类创建执行动画,参数为当前值和目标值,根据对应算法来完成动画效果根据目标状态的属性值和记录的缓存属性值,调用创建好的动画对象执行即可那落实到代码中,首先先集成Transition和。定义你关心的属性值;比如我想在文本颜色发生改变时做转场动画,就可以定义上述的属性。记录起始状态的属性;上述方法分别存储起始状态下对应的属性值:创建动画;复制代码参数值的和endValues。

2401_84009626的博客 662

Android Gesture Detector

感谢android中国开发者的众多先驱,本文主要内容来自于总结,一小部分是自己的体会。主要参考文章为:http://www.williamhua.com/2009/04/23/android-touchscreen-gesture-recogniton/http://goro.iteye.com/blog/402163Android Touch Screen 与传统Click...

weixin_34199405的博客 77
上一篇: canvas.translate(x,y)一点新的认识
下一篇: Android入门(5) SharedPreferences
chenshufei2
博客等级 码龄19年 79粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值