zoukankan      html  css  js  c++  java
  • 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     
    补间动画
  • 相关阅读:
    玲珑oj 1129 ST
    HDU 3397 线段树区间修改
    bzoj 1798 双标记区间修改线段树
    HDU 4417 BIT or ST
    HDU 2492 BIT/逆序数/排列组合
    uva 12086 线段树or树状数组练习
    cf 833 A 数论
    wcf的DataContractAttribute与DataMenmberAttribute
    wcf服务查看工具
    git学习-综合性文章
  • 原文地址:https://www.cnblogs.com/ggz19/p/3816761.html
Copyright © 2011-2022 走看看