Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071485
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-03-12 18:47:14

1、在layout目录中新建XML文件:

  1. <span style="font-size:18px;">xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout  
  3.     xmlns:android=""  
  4.     android:orientation="vertical"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent">  
  7.     <ImageView  
  8.         android:id="@+id/imgTween"  
  9.         android:src="@drawable/c01"  
  10.         android:layout_height="wrap_content"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_weight="1.0" />  
  13.     <Button  
  14.         android:id="@+id/btnControl"  
  15.         android:text="开始"  
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="wrap_content" />  
  18.   
  19. LinearLayout>  
  20. span>  
2、在Activity代码中写:

  1. "font-size:18px;">package com.bison;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.view.animation.AlphaAnimation;  
  8. import android.view.animation.Animation;  
  9. import android.view.animation.AnimationSet;  
  10. import android.view.animation.RotateAnimation;  
  11. import android.view.animation.ScaleAnimation;  
  12. import android.view.animation.TranslateAnimation;  
  13. import android.widget.Button;  
  14. import android.widget.ImageView;  
  15. import android.widget.ImageView.ScaleType;  
  16.   
  17. public class TweenAnimationDemo extends Activity implements OnClickListener {  
  18.     // 声明一个开始停止的标识符  
  19.     private boolean flags = true;  
  20.     private ImageView imgTween;  
  21.     private Button btnCtrl;  
  22.     private AnimationSet as;  
  23.   
  24.     /** 初始化 */  
  25.     public void init() {  
  26.         // 声明AnimationSet  
  27.         as = new AnimationSet(true);  
  28.         // 声明Alpha、Scale、Translate、Rotate 等Animation  
  29.         AlphaAnimation aa = alphaAnim(10.3f);  
  30.         ScaleAnimation sa = scaleAnim(0.2f, 1.0f, 0.2f, 1.0f, 11);  
  31.         TranslateAnimation ta = translateAnim(50f, 100f, 50f, 100f);  
  32.         RotateAnimation ra = rotateAnim(0360);  
  33.         // 添加各种动画  
  34.         as.addAnimation(aa);  
  35.         as.addAnimation(sa);  
  36.         as.addAnimation(ta);  
  37.         as.addAnimation(ra);  
  38.   
  39.         imgTween = (ImageView) findViewById(R.id.imgTween);  
  40.         imgTween.setScaleType(ScaleType.CENTER_INSIDE);  
  41.   
  42.         btnCtrl = (Button) findViewById(R.id.btnControl);  
  43.         btnCtrl.setOnClickListener(this);  
  44.   
  45.     }  
  46.   
  47.     /** 缩放 */  
  48.     private ScaleAnimation scaleAnim(float start_x, float end_x, float start_y,  
  49.             float end_y, float x2, float y2) {  
  50.         // 开始x坐标伸缩尺寸,结束x坐标伸缩尺寸,开始y坐标伸缩尺寸,结束y坐标伸缩尺寸,x轴的百分比,y轴的百分比  
  51.         ScaleAnimation sa = new ScaleAnimation(start_x, end_x, start_y, end_y,  
  52.                 x2, y2);  
  53.         sa.setDuration(3000);  
  54.         sa.setRepeatMode(Animation.REVERSE);  
  55.         sa.setRepeatCount(5);  
  56.         return sa;  
  57.     }  
  58.   
  59.     /** 透明度 */  
  60.     private AlphaAnimation alphaAnim(float x, float y) {  
  61.         AlphaAnimation aa = new AlphaAnimation(x, y);  
  62.         aa.setDuration(2000);  
  63.         aa.setRepeatMode(Animation.REVERSE);  
  64.         aa.setRepeatCount(5);  
  65.         return aa;  
  66.     }  
  67.   
  68.     /** 移动 */  
  69.     private TranslateAnimation translateAnim(float startX, float endX,  
  70.             float startY, float endY) {  
  71.         TranslateAnimation ta = new TranslateAnimation(startX, endX, startY,  
  72.                 endY);  
  73.         ta.setDuration(3000);  
  74.         ta.setRepeatMode(Animation.REVERSE);  
  75.         ta.setRepeatCount(5);  
  76.         return ta;  
  77.     }  
  78.   
  79.     /** 旋转 */  
  80.     private RotateAnimation rotateAnim(float startDegrees, float endDegrees) {  
  81.         RotateAnimation ra = new RotateAnimation(startDegrees, endDegrees);  
  82.         ra.setDuration(3000);  
  83.         ra.setRepeatMode(Animation.RESTART);  
  84.         ra.setRepeatCount(5);  
  85.         return ra;  
  86.     }  
  87.   
  88.     @Override  
  89.     protected void onCreate(Bundle savedInstanceState) {  
  90.         super.onCreate(savedInstanceState);  
  91.         setContentView(R.layout.tween_anim_layout);  
  92.         init();  
  93.     }  
  94.   
  95.     public void onClick(View v) {  
  96.         if (flags) {  
  97.             btnCtrl.setText("停止");  
  98.             imgTween.startAnimation(as);  
  99.             flags = false;  
  100.         } else {  
  101.             btnCtrl.setText("开始");  
  102.             imgTween.clearAnimation();  
  103.             flags = true;  
  104.         }  
  105.     }  
  106. }  
  107.   

PS:这个方法比在XML中定义要好,可以传参,修改等,更方便操作。

阅读(650) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~