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" />
TimePicker控件

该控件可以通过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     }
TimePicker事件监听

 

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>
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>
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     
补间动画

你可能感兴趣的:(time)