位置: 编程技术 - 正文

Scroller的使用(scrollcontroller)

编辑:rootadmin

推荐整理分享Scroller的使用(scrollcontroller),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:scrollerview,scrollcontroller,scroller com,scroll on,scrollcontroller,scroller com,scrollerview,scrollcontroller,内容如对您有帮助,希望把文章链接给更多的朋友!

我也不知道怎么就稀里糊涂的看起来Android UI方面的东东了,偶尔感到无聊就看不下去了。开个博客记录一下吧,以后忘记了也方便翻一翻。

Scroller在android.widget包下,但是它本身却没有关于UI绘画的东东。个人认为其是一个辅助类,用于其他View的绘画。

Scroller的使用很简单:

1.初始化Scroller对象;

2.调用Scroller的Scroller的startScroll方法。

3.调用Scroller的computeScrollOffset方法来更新Scroller的mCurrX和mCurrY&#;。这两个&#;是对我们有用的,其标记了我们设定的位置变化轨迹。每调用一次该方法,坐标会更新一次,直到该&#;已经变化为我们指定的最终位置。当然,变化过程是在一个指定时间内完成的,默认为毫秒。

看一下代码

public class MainActivity extends Activity implements View.OnClickListener{private Scroller mScroller = null;private TextView tv = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mScroller = new Scroller(this);tv = new TextView(this){public void computeScroll() {if (mScroller.computeScrollOffset()) { tv.scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); }tv.invalidate();}};tv.setText("click me!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2");tv.setLayoutParams(new LayoutParams(, ));tv.setSingleLine();tv.setClickable(true);tv.setOnClickListener(this);setContentView(tv);}

public void onClick(View arg0) {mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), , 0);tv.invalidate();}}

Scroller的使用(scrollcontroller)

mScroller.startScroll的调用可以在任何需要的地方,就如前面所说,Scroller本身和我们需要的View的绘制没有任何直接关系,所以咋一看,不明白这个调用有什么用。其实,它就是来告诉Scroller对象开始计算一系列插&#;,形成一系列的变化轨迹。

mScroller.startScroll调用后,会紧接着激活我们要重新绘制的View(这里是textview),这个是一个关键。

在基类View中有一个空函数public void computeScroll() { },所以我们可以在任何子类中重写该方法。computeScroll()会在View的绘制和更新中被调用到,用于计算绘制的坐标。这样的话,我们就可以将Scroller一些列的变化&#;,一次通过该函数传递给View用于其重绘。

但是我们可以看到computeScroll是没有参数的,它仅仅是提供了一个接口来使我们可以在绘制前有时间做处理,而这里我么需要使用View的scrollTo方法,来将Scroller的实时轨迹传递进去,看源码可以发现,View中有protected int mScrollX和mScrollY两个成员变量,这就是scrollTo传进来的&#;保存的地方。

对于上面代码的流程,我们可以简单的理解为:

1.Scroller.startScroll开始位置轨迹的计算

2.Scroller.computeScrollOffset()用于更新运动轨迹的记录&#;

3.Scroller.getCurrX()用于获取当前的运动轨迹&#;

4.View.computeScroll()用于在View绘制前更新绘制的坐标。当然这是一个连续的动作,需要不断的调用invalidate来激活重绘,知道computeScrollOffset返回false&#;,标志着已经移动到指定的位置了。

Fused Location Provider Inthehighdayoflocation-basedmobiledealsandoffers,thequestionofdefininguser’slocationforspecificservices,collectingstatisticsorkeepingtrackofauser’smovementforspecificpurposesremainsasrelevantaseve

关于新版ADT每次创建项目都出现appcompat_v7的问题 做Android开发的朋友最近会发现,更新ADT至.6.0版本之后,创建新的安装项目,会出现appcompat_v7的内容,而且项目会报错。这到底是怎么回事呢?原来appc

Unable to execute dex: Multiple dex files define 解决方法 问题发生概述:程序编译正常,在用Eclipse调试执行时,报错Unabletoexecutedex:Multipledexfilesdefine,因为以前也没有遇到这类错误,首先便尝试万能纠错发,

标签: scrollcontroller

本文链接地址:https://www.jiuchutong.com/biancheng/376664.html 转载请保留说明!

上一篇:Android Bitmap总结(android/bitmap.h)

下一篇:Unable to execute dex: Multiple dex files define 解决方法

  • 个人经营所得税起征点是多少
  • 代扣代缴通用缴款书怎么打印
  • 红字发票申请表盖什么章
  • 汇算清缴的
  • 暂估一直不来票,没有纳税调整怎么办
  • 公司给离职员工多发工资怎么办
  • 销项税额是不是开出去的发票金额
  • 事业单位取得了应税收入如何纳税?
  • 三栏式明细账适用于哪些账簿
  • 甲公司采用租赁方式租入一台大型设备
  • 企业所得税清算报备是什么意思
  • 福利费专票进项抵扣转出怎么做账
  • 收到应收票据应该确认收入吗
  • 什么是餐饮服务
  • u盘写入扇区错误
  • 印花税零申报逾期
  • 中途建账科目余额表怎么建
  • 小规模计提增值税的会计科目
  • 怎么给分区
  • 现在我们来看看windows中的新增内容
  • 事业单位预付款会计分录
  • w11系统安卓
  • 解决的英文
  • php assign
  • 购入无形资产的增值税税率
  • Vite + Vue3 +Vant4构建项目时,按需引入使用Toast组件,引用 showToast 时出现编译报错的解决方案
  • phpstudy怎么配置php环境
  • 第三方代付如何开票
  • 公司基本户没有开户许可证
  • html游戏大全
  • 长期借款科目的借方反映的内容
  • 管理费用包括哪些部门的工资
  • 售后租回交易的第二年利息怎么算
  • 设计模式代理模式
  • 公司采购不含税产品合法吗
  • 决算报表属于会计账簿吗
  • 银行汇票的特点和用途
  • 公司的资金管理模式是什么?
  • 债权投资减值对股票影响
  • Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)
  • 分组 sql
  • 为什么收款金额跟实时入帐金额会不一样农村信用社
  • 固定资产折旧的计算方法
  • 商业企业如何建账
  • 物业管理费发票备注栏要求
  • 个人所得税的减免政策有哪些
  • 饭店开业多久可以正常
  • 增值税普通发票税率
  • 核定征收和查账征收报税有区别吗
  • 发票抵扣联可以作为凭证吗
  • 抵扣联明细没认证如何申报
  • 收到货款比开票少怎么办
  • 金税盘的维护费怎么报税
  • 生产经营所得如何申请退税
  • 其他业务支出的借贷方向
  • 与其他企业联合投资一个项目要怎么做账务处理?
  • 加工企业如何计税
  • 损益类科目结转本年利润方向
  • 应用程序发生异常如何解决
  • redhat linux6.5安装教程
  • linux中的find的用法
  • s24evmon.exe - s24evmon是什么进程 有什么用
  • 怎么判断电脑windows几
  • windows打开
  • 关闭linux命令
  • unity用visual
  • jquery validation
  • linux shell脚本中sudo后输入密码
  • python的理解
  • js中top/parent/frame概述及案例应用
  • unity获取手机型号
  • 百度坐标转换成WGS84坐标
  • jquery-easyui-1.3.3
  • javascript核心技术开发解密
  • 详解增发万亿国债细节
  • python flask
  • 税务局遴选能去什么单位
  • 怎样在中国税务用手机交社保
  • 陕西个体户免税政策
  • 福建农村社保一个月可以拿多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设