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 ...
随机推荐
- iview下拉树组件
iview.vue.jq等自行引用 iview.js和iview.css版本是iview@3.4.2 <!DOCTYPE html> <html lang="en" ...
- SQL Ssever 安装.NET3.5 框架
SQL Ssever 安装.NET3.5 框架 我们在安装 SQL Sever 2014 的时候必须要安装 .NET3.5 框架,然后才能继续安装 SQL Server 2014. 您可能在安装 SQ ...
- 数据中台核心方法论--OneModel为何需要产品化支撑?
什么是产品化 大部分创业公司都是从一个伟大的想法创意开始的,并且需要有一堆技术专家来实现.我们清楚,伟大的技术并不等同于和伟大的产品,技术可以解决问题,但如果它没有办法法规模化,那这些技术或者能力对用 ...
- nginx支持http2协议
1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...
- Apache—httpd服务创建个人用户主页功能
创建个人用户主页功能 第1步:开启个人用户主页功能 UserDir disabled前加# UserDir public_html 去掉前面# UserDir参数表示的是需要在用户家目录中创建的网站 ...
- Java SAX解析器
SAX(针对XML的简单API)是基于事件为XML文档的解析器.不像DOM解析器,SAX解析器创建没有解析树. SAX是一个流接口用于XML的,这意味着使用SAX应用接收事件通知有关XML文档被处理的 ...
- Java中的宏变量,宏替换详解。
群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 首先来看下面这段程序,和群友分享的大致一样. public static void main(String[] args) { String ...
- 【linux】centos6/7 + nginx 利用certbot 申请https证书
没错我又踩坑了.昨晚上搞到十二点半才成功申请.鬼知道OJ服务器是个什么渣渣. 早上才算正式弄好,中间也学了不少东西,记录一下.这次是http转https,所以默认的还是只有80端口. 请务必确保自己的 ...
- Excel_PoweQuery——条件计数、条件求和
岁月不居,时节如流. 时光荏苒,岁月如梭. 前面两段充分体现了博主深厚的文学素养,别和博主争,博主说啥就是啥. 其实,对于大量数据的处理,这几年微软Office做的不单单是2007的时候把Excel的 ...
- 初探remoting双向通信(一)
原 初探remoting双向通信(一) 2013年06月24日 15:47:07 喜欢特别冷的冬天下着雪 阅读数 4389 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...