Android中让View匀速旋转
项目需求,需要一个实现一个单帧的旋转动画,来提示当前进度,类似与圆圈型的progressbar。
首先定义anim文件:
[html] view
plaincopyprint?
1.
<rotate
2.
android:interpolator="@android:anim/linear_interpolator"
4.
android:fromDegrees="0"
5.
android:toDegrees="+359"
7.
android:pivotX="50%"
8.
android:pivotY="50%"
9.
android:repeatMode="restart"
10.
android:repeatCount="infinite"
11.
android:duration="2000" />
这就是以显示的图片问中心的无限旋转动画,然后对相应的组件使用该动画:这时我们发现效果不是匀速旋转,也就是说我们在xml里定义的android:interpolator="@android:anim/linear_interpolator"没有起到应有的作用,通过查找资料,发现该属性需要在代码里设定才能达到效果,于是实验了一下,发现确实如此,代码如下:
my_rotate.xml文件如下:
[html] view
plaincopyprint?
1.
<rotate
3.
android:fromDegrees="0"
4.
android:toDegrees="+359"
6.
android:pivotX="50%"
7.
android:pivotY="50%"
8.
android:repeatMode="restart"
9.
android:repeatCount="infinite"
10.
android:duration="2000" />
java代码如下:
[java] view
plaincopyprint?
1.
Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_rotate);
2.
LinearInterpolator lir = new LinearInterpolator();
3.
anim.setInterpolator(lir);
4.
findViewById(R.id.test).startAnimation(anim);
这时新问题又出现了,这个动画效果应因为定义的是无限循环的,当我们作为圆形的progressbar使用时没法停止该动画效果,即使我们在符合触发条件时把相应的控件设置为不可见,其动画效果依然在屏幕上旋转,该怎么办呢?
同样通过百度,我们发现android提供了一个clearAnimation()方法,用于动画的清除,这时在满足我们的progressbar停止条件时,我们让相应控件调用clearAnimation()方法,然后在将其设置为不可见就实现了类progressbar效果。
Android中让View匀速旋转的更多相关文章
- android中实现view可以滑动的六种方法续篇(二)
承接上一篇,上一篇中讲解了实现滑动的第五种方法,如果你还没读过,可点击下面链接: http://www.cnblogs.com/fuly550871915/p/4985482.html 这篇文章现在来 ...
- 详解实现Android中实现View滑动的几种方式
注: 本文提到的所有三种滑动方式的完整demo:ScrollDemo 1. 关于View我们需要知道的 (1)什么是View? Android中的View类是所有UI控件的基类(Base class) ...
- Android 中的View与ViewGroup
Android重点知识--View和ViewGroup与自定义控件 作者:丁明祥 邮箱:2780087178@qq.com 一.基础 ViewGroup 参考资料: Android 手把手教您自定义V ...
- Android中自定义View和自定义动画
Android FrameWork 层给我们提供了很多界面组件,但是在实际的商业开发中这些组件往往并不能完全满足我们的需求,这时候我们就需要自定义我们自己的视图和动画. 我们要重写系统的View就必须 ...
- android progressbar 自定义图片匀速旋转
项目中需要使用圆形进度条进行数据加载的显示,所以需要两个步骤 1:自定义progressbar滚动图片 2:匀速旋转图片 步骤一:自定义progressbar图片 <ProgressBar an ...
- android开发:Android 中自定义View的应用
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version="1.0&q ...
- android中自定义view构造函数ContentItemView(Context context, AttributeSet paramAttributeSet)的用处
自己定义一个view <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...
- Android中父View和子view的点击事件的执行过程
Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN- ...
- android中实现view可以滑动的六种方法续篇(一)
承接上一篇,如果你没有读过前四章方法,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4985053.html 下面开始讲第五中方法. 五.利用Sc ...
随机推荐
- NORDIC内核ARM蓝牙芯片NRF51802/NRF51822
Nordic nRF51 系列的IC 和协议堆栈对内存大小.封装类型.接口.周边产品及无线连接提供更多选择. 关于 nRF51 系列 多协议 2.4GHz 射频收发器拥有高性能.超低功耗以及灵活性等 ...
- SQO2008配置管理工具服务显示远程过程调用失败0x800706be
需要进行删除或更改程序里面,去卸载Microsoft SQL Server 2012 Express LocalDB就可以用了 如果还不可以看,看看是不是还有其它的占用了这个实例名 如: Micros ...
- 【Flutter学习】之动画实现原理浅析(一)
一,动画介绍 动画对于App来说,非常的重要.很多App,正是因为有了动画,所以才会觉得炫酷.移动端的动画库有非常的多,例如iOS上的Pop.web端的animate.css.Android端的And ...
- Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件
一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...
- 基于jquery和bootstrap的下拉框左右选择功能
实现如图选择的功能,可以用基于bootstrap的样式,结合jquery事件: <div class="row"> <div class="col-xs ...
- AcWing 214. Devu和鲜花 (容斥)打卡
Devu有N个盒子,第i个盒子中有AiAi枝花. 同一个盒子内的花颜色相同,不同盒子内的花颜色不同. Devu要从这些盒子中选出M枝花组成一束,求共有多少种方案. 若两束花每种颜色的花的数量都相同,则 ...
- 爬虫问题之Unknown command: crawl
出现这个问题,很大原因是爬虫没有在项目文件夹里运行,因为scrapy 这个爬虫框架封装好的一些命令,必须在框架内环境支持下才能运行 另外在环境目录下,还有很多命令,也必须在此路径环境下才能执行 可以通 ...
- windows shell命令和快捷键
// 这下面的宏,貌似都能通过shell:调用 // SHGetSpecialFolderLocation // // Caller should use SHGetMalloc to obtain ...
- AJAX请求,返回json进行页面绑值
AJAX请求,返回json进行页面绑值 后台 controller @RequestMapping(value = "backjson.do",method=RequestMeth ...
- SourceInsight 支持 Python
SourceInsight 支持 Python 步骤一:下载相关的插件 Python.CLF插件 链接如下: Python.CLF|Python.CLF下载_红软基地 http://www.rsdow ...