TimePicker控件、帧动画、补间动画
时间:2022-04-29
本文章向大家介绍TimePicker控件、帧动画、补间动画,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.TimePicker控件
最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进行事件的绑定哈。不过在Silverlight中,如果用MVVM设计模式的话,也可以自己为控件写Command命令的,可以取代控件的事件。
TimePicker控件,也就是事件控件,可以用设置时间的。在页面拖入控件后,默认是显示系统时间的。
1 <TimePicker
2 android:id="@+id/timePicker1"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:layout_alignLeft="@+id/textView1"
6 android:layout_alignTop="@+id/textView1" />
该控件可以通过OnTimeChangedListener监听时间的改变,可以获得时和分,并不能精确到秒。
1 public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
2 // TODO 自动生成的方法存根
3 funTime(hourOfDay,minute);
4 }
5 private void funTime(int hourOfDay, int minute) {
6 // TODO 自动生成的方法存根
7 EditText myEdit=(EditText)findViewById(R.id.editText1);
8 myEdit.setText("当前时间为:"+hourOfDay+"时"+minute+"分");
9
10 }
2.帧动画
帧动画,也就是将静态图像连续播放的,播放的间隔可以自己设置。
首先需要在anim文件下,添加一个animation-list类型的xml文档。
1 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
2 <item android:drawable="@drawable/bulb01" android:duration="500" android:visible="true"></item>
3 <item android:drawable="@drawable/bulb02" android:duration="500" android:visible="true"></item>
4 <item android:drawable="@drawable/bulb03" android:duration="500" android:visible="true"></item>
5 <item android:drawable="@drawable/bulb04" android:duration="500" android:visible="true"></item>
6 </animation-list>
这里定义了4个对象,并为每个对象指定了drawable和duration。
然后可以通过button按钮控制动画的播放与停止
1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.activity_main);
4 myTime=(TimePicker)findViewById(R.id.timePicker1);
5 ImageView iv=(ImageView)findViewById(R.id.imageView1);
6 Button start=(Button)findViewById(R.id.button1);
7 Button end=(Button)findViewById(R.id.button2);
8 iv.setBackgroundResource(R.drawable.animationlist);
9 Button mybutton=(Button)findViewById(R.id.button3);
10
11 mybutton.setOnClickListener(new OnClickListener() {
12
13 @Override
14 public void onClick(View v) {
15 ImageView imgView=(ImageView)findViewById(R.id.imageView2);
16 // TODO 自动生成的方法存根
17 //动画实例
18 Animation ani=AnimationUtils.loadAnimation(MainActivity.this, R.anim.twiani);
19 //开始动画
20 imgView.startAnimation(ani);
21 }
22 });
23 //定义帧动画
24 final AnimationDrawable ad=(AnimationDrawable)iv.getBackground();
25 //开始按钮监听
26 start.setOnClickListener(new OnClickListener() {
27
28 @Override
29 public void onClick(View v) {
30 // TODO 自动生成的方法存根
31 //动画开始
32 ad.start();
33 }
34 });
35 //结束按钮监听
36 end.setOnClickListener(new OnClickListener() {
37
38 @Override
39 public void onClick(View v) {
40 // TODO 自动生成的方法存根
41 //动画停止
42 ad.stop();
43 }
44 });
45
46 }
3.补间动画
补间动画和帧动画有很大的区别,补间动画是对一张或者两张图片进行的变换,这些变换包括移动、大小、旋转等,只需要第一帧和最后一帧的图片。
(1)在anim文件中建立一个set类型的xml文档。
1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3 <!-- 透明度-->
4 <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="6000" >
5 </alpha>
6 <!-- 尺寸 -->
7
8 <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"
9 android:fromXScale="0.0"
10 android:toXScale="1.0"
11 android:fromYScale="0.0"
12 android:toYScale="1.0"
13 android:pivotX="50%"
14 android:pivotY="50%"
15 android:fillAfter="false"
16 android:duration="5000"></scale>
17 <!-- 位置-->
18 <translate android:fromXDelta="30"
19 android:toXDelta="0"
20 android:fromYDelta="30"
21 android:toYDelta="0"
22 android:duration="10000"></translate>
23 <!-- 旋转 -->
24 <rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"
25 android:fromDegrees="0"
26 android:toDegrees="360"
27 android:pivotX="50%"
28 android:pivotY="50%"
29 android:duration="10000"/>
30 </set>
这里通过<alpha>、<scale>、<translate>、<rotate>分别对图像的透明度、缩放、移动和旋转进行控制。
(2)在后台进行动画的播放
1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.activity_main);
4
5 Button mybutton=(Button)findViewById(R.id.button3);
6
7 mybutton.setOnClickListener(new OnClickListener() {
8
9 @Override
10 public void onClick(View v) {
11 ImageView imgView=(ImageView)findViewById(R.id.imageView2);
12 // TODO 自动生成的方法存根
13 //动画实例
14 Animation ani=AnimationUtils.loadAnimation(MainActivity.this, R.anim.twiani);
15 //开始动画
16 imgView.startAnimation(ani);
17 }
18 });
19
20
21
22 }
23
24
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【NLP保姆级教程】手把手带你fastText文本分类(附代码)
- 【情感分析】ABSA模型总结(PART I)
- 【Kick Algorithm】十大排序算法及其Python实现
- 【情感分析】ABSA模型总结(PART II)
- 【NLP保姆级教程】手把手带你RCNN文本分类(附代码)
- 【NLP保姆级教程】手把手带你HAN文本分类(附代码)
- 【情感分析】基于Aspect的情感分析模型总结(PART III)
- NLP简报(Issue#6)
- python实现kNN(最近邻)
- python实现朴素贝叶斯
- Transformers Assemble(PART V)
- 面试官问我:如何加载100M的图片却不撑爆内存,一张 100M 的大图,如何预防 OOM?
- 预训练模型中的可插拔式知识融入——利用Adapter结构
- 【情感分析】基于Aspect的情感分析模型总结(PART IV)
- 详解ERNIE-Baidu进化史及应用场景