码迷,mamicode.com
首页 > 移动开发 > 详细

Android--Animations的使用(二)

时间:2015-09-15 18:25:51      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

Animations的第二种使用方法 XML

代码写在java文件中的

优点:初学者看着舒服,代码的调试都很方便,断点。

缺点:代码的可复用性太低面向对象的终极目标:减少重复代码

代码写在XML文件中的

优点:A和B控件可以同时使用一个动画效果,提高了复用性。可维护性变高了。   比如,老板说:渐变效果变成缩小效果

缺点:代码语法可以由编译器来检查,调试费劲。

XML形式使用Animations的TweenedAnimations的步骤

1、在res文件夹下面新建名为anim的文件夹

2、在该文件夹下创建xml文件,并首先加入set标签,该标签属性设置如下: set表示集合,一系列的admations

     <set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator"
     android:shareInterpolator="true">
     </set> 

3、在set标签中加入rotate、alpha、scale或者translate标签

4、在代码中使用AnimationUtils(通常Utils结束的类里面都包含了一些静态函数,工具方法)装载xml文件,并生成Animation对象

1、XML形式的alpha动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:startOffset="500"
        android:duration="500">
        
    </alpha>
</set>

2、Java中触发

使用AnimationUtils装载动画设置文件。

imageView.startAnimation(animation);

    private class AlphaButtonListenenr implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
            imageView.startAnimation(animation);
        }
    }

上面一次执行animationSet.addAnimation()然后执行的是admationSet对象。

这里怎么就直接执行animation对象呢?

首先startAnimation(animation)  接受的参数是Animation类型,为什么上次穿的animationSet也没有问题呢,因为animationSet是Animation的子类,向上转型

1、XML形式的Rotate动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
   
    <rotate 
        android:fromDegrees="0"
        android:toDegrees="+350"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="3000">
        
    </rotate>
</set>

 

 

pivoX  Y的三种形式:

  1. android:pivotX="50" 使用绝对位置定位
  2. android:pivotX="50%" 相对于控件本身定位
  3. android:pivotX="50%p" 相对于控件的父控件定位
    <translate 
     android:fromXDelta="50%“ android:toXDelta="70%“ android:fromYDelta="0%“ android:toYDelta="80%" android:duration="3000"/> <scale android:fromXScale="1.0" android:toXScale="0.0“ android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%“ android:pivotY="50%“ android:duration="3000"/>

 

Android--Animations的使用(二)

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4810831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!