查看: 742|回复: 2

[Android] 代码中实现Animation

[复制链接]

该用户从未签到

发表于 2014-12-30 11:27:41 | 显示全部楼层 |阅读模式
1、MainActicity.java

  1. public class MainActivity extends Activity
  2. {
  3.     //定义几个button
  4.     private Button alphaButton = null;
  5.     private Button scaleButton = null;
  6.     private Button rotateButton = null;
  7.     private Button translateButton = null;
  8.     private ImageView imageView = null;
  9.     @Override
  10.     protected void onCreate(Bundle savedInstanceState)
  11.     {
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.activity_main);
  14.         //找到控件
  15.         alphaButton = (Button)findViewById(R.id.alphaBtn);
  16.         scaleButton = (Button)findViewById(R.id.scaleBtn);
  17.         rotateButton = (Button)findViewById(R.id.rotateBtn);
  18.         translateButton= (Button)findViewById(R.id.translateBtn);
  19.         imageView = (ImageView)findViewById(R.id.imageViewId);
  20.         //为控件添加事件
  21.         alphaButton.setOnClickListener(new btnListener());
  22.         scaleButton.setOnClickListener(new btnListener());
  23.         rotateButton.setOnClickListener(new btnListener());
  24.         translateButton.setOnClickListener(new btnListener());
  25.     }
  26.    
  27.     class btnListener implements OnClickListener
  28.     {

  29.         @Override
  30.         public void onClick(View v)
  31.         {
  32.             //创建AnimationSet对象
  33.             AnimationSet animationSet = new AnimationSet(true);
  34.             // TODO Auto-generated method stub
  35.             switch(v.getId())
  36.             {
  37.                 case R.id.alphaBtn:
  38.                     //透明效果
  39.                     //创建一个alphaAnimation,从完全透明到完全不透明
  40.                     AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
  41.                     //动画执行的时间,单位ms
  42.                     alphaAnimation.setDuration(1000);
  43.                     
  44.                     //将animation添加到AnimationSet对象中
  45.                     animationSet.addAnimation(alphaAnimation);
  46.                     //开始执行动画
  47.                     imageView.startAnimation(animationSet);
  48.                     break;
  49.                 case R.id.scaleBtn:
  50.                     //缩放效果
  51.                     //创建ScaleAnimation,横纵都是从原来缩小到10%
  52.                     ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1, 0.1f,
  53.                                 Animation.RELATIVE_TO_SELF, 0.5f,
  54.                                 Animation.RELATIVE_TO_SELF, 0.5f);
  55.                     //动画执行的时间,单位ms
  56.                     scaleAnimation.setDuration(3000);
  57.                     //将animation添加到AnimationSet对象中
  58.                     animationSet.addAnimation(scaleAnimation);
  59.                     //开始执行动画
  60.                     imageView.startAnimation(animationSet);
  61.                     break;
  62.                 case R.id.rotateBtn:
  63.                     /*旋转效果
  64.                     第一个参数是起始角度(12点位置是0度)
  65.                     第二个参数是停止角度
  66.                     第三个参数旋转圆心横坐标类型
  67.                     第四个参数旋转圆心横坐标大小
  68.                     第五个参数旋转圆心纵坐标类型
  69.                     第六个参数旋转圆心纵坐标大小
  70.                     Animation.RELATIVE_TO_PARENT相对于父控件的坐标
  71.                     Animation.RELATIVE_TO_SELF相对于自身的坐标
  72.                     手机的原点在左上角
  73.                     */
  74.                     RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
  75.                                                         Animation.RELATIVE_TO_PARENT, 1f,
  76.                                                         Animation.RELATIVE_TO_PARENT, 0f);
  77.                     //设置动画时间
  78.                     rotateAnimation.setDuration(3000);
  79.                     //将animation添加到AnimationSet对象中
  80.                     animationSet.addAnimation(rotateAnimation);
  81.                     //开始执行动画
  82.                     imageView.startAnimation(animationSet);
  83.                     break;
  84.                 case R.id.translateBtn:
  85.                     TranslateAnimation translateAnimation = new TranslateAnimation(
  86.                             Animation.RELATIVE_TO_SELF, 0f,
  87.                             Animation.RELATIVE_TO_SELF, 0.5f,
  88.                             Animation.RELATIVE_TO_SELF, 0f,
  89.                             Animation.RELATIVE_TO_SELF, 0.5f
  90.                             );
  91.                     //设置动画时间
  92.                     translateAnimation.setDuration(3000);
  93.                     //将animation添加到AnimationSet对象中
  94.                     animationSet.addAnimation(translateAnimation);
  95.                     //开始执行动画
  96.                     imageView.startAnimation(animationSet);
  97.                     break;
  98.                 default:
  99.                         break;
  100.             }
  101.             
  102.         }
  103.         
  104.     }

  105.     @Override
  106.     public boolean onCreateOptionsMenu(Menu menu)
  107.     {
  108.         // Inflate the menu; this adds items to the action bar if it is present.
  109.         getMenuInflater().inflate(R.menu.main, menu);
  110.         return true;
  111.     }

  112. }
复制代码

    2、布局文件

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".MainActivity" >

  10.     <TextView
  11.         android:layout_width="wrap_content"
  12.         android:layout_height="wrap_content"
  13.         android:text="@string/hello_world" />
  14.     <Button
  15.         android:id="@+id/alphaBtn"
  16.         android:layout_width="fill_parent"
  17.         android:layout_height="wrap_content"
  18.         android:layout_alignParentBottom="true"
  19.         android:text="alpha动画"
  20.         />
  21.     <Button
  22.         android:id="@+id/scaleBtn"
  23.         android:layout_width="fill_parent"
  24.         android:layout_height="wrap_content"
  25.         android:layout_above="@id/alphaBtn"
  26.         android:text="scale动画"
  27.         />
  28.     <Button
  29.         android:id="@+id/rotateBtn"
  30.         android:layout_width="fill_parent"
  31.         android:layout_height="wrap_content"
  32.         android:layout_above="@id/scaleBtn"
  33.         android:text="rotate动画"
  34.         />
  35.     <Button
  36.         android:id="@+id/translateBtn"
  37.         android:layout_width="fill_parent"
  38.         android:layout_height="wrap_content"
  39.         android:layout_above="@id/rotateBtn"
  40.         android:text="translate动画"
  41.         />
  42.     <ImageView
  43.         android:id="@+id/imageViewId"
  44.         android:layout_height="wrap_content"
  45.         android:layout_width="wrap_content"
  46.         android:layout_centerInParent="true"
  47.         android:layout_marginTop="100dip"
  48.         android:src="@drawable/ic_launcher"
  49.         />
  50. </RelativeLayout>
复制代码


该用户从未签到

发表于 2014-12-31 12:40:40 | 显示全部楼层
Animation 是什么东西?

该用户从未签到

 楼主| 发表于 2015-1-6 20:35:34 | 显示全部楼层
不要放弃治疗 发表于 2014-12-31 12:40
Animation 是什么东西?

http://www.cnblogs.com/feisky/archive/2010/01/11/1644482.html
您需要登录后才可以回帖 登录 | 注册青鸟豆号

本版积分规则

Copyright 1999-2019 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

京ICP备11045574号-3 京公网安备11010802013845号

快速回复 返回顶部 返回列表