每十二个爱好给自个儿一块钱,缩放效果

前言:
为了熟习android的动画,看了郑钦洪_的iOS中旋转加载动画的兑现,固然她是搞IOS的,但也是有借鉴之处的(好吧,就是她叫自身写3个接近的卡通片,赶紧上他那边点赞喜欢!他说
每十个喜欢给自家一块钱,蚊子腿再小也是肉啊)。

补间动画

可以动用补间动画系统实施补间动画。补间动画总括动画相关的新闻包涵起始点、停止点、大小、旋转角度以及其余与动画相关的共同点。

三个补间动画能执行一密密麻麻简单的转换(地点、大小、旋转角度和发光度)关于三个视图对象的性格。所以,要是有1个TextView,你可以让文本移动、旋转、放大、减少。如若有背景图片,背景图片将和文件一起被撤换。

补间动画能够透过XML文件或Android代码,推荐应用XML文件。因为可读性更好,重用性更好,比硬编码更好替换。

每二个变换得到一个切实可行变换的参数集合(初阶大小,甘休大小,起始角度,停止角度等等)和局地科普的参数(发轫时间,时长)。为了使多少个转移同时开首,使它们的始发时间同一;为了顺序执行,让开头时间增进变换执行的年华。

补间动画的XML文件放在res/anim目录下。该公文有位移根元素<alpha>,<scale>,<translate>,<rotate>,插值器成分或<set>。为了使变换顺序执行,必须安装startOffset属性。如下:

ca88亚洲城网站 1

exam1

显示器坐标:左上角为(0,0),向右、向下扩展。

一对值,比如pointX,能确定相对自个儿大概绝对父控件的涉及。依据要求选取恰当的格式(50为相对父控件的56%,46%为相对本人的1/4)。

代码调用res/anim目录下的hyperspace_jump.xml动画:

ImageView
spaceshipImage=(ImageView)findViewById(R.id.spaceshipImage);

Animation
hyperspaceJumpAnimation=AnimationUtils.loadAnimation(this,R.anim.hyperspace_jump);

spaceshipImage.startAnimation(hyperspaceJumpAnimation);

startAnimation()可以行使如下格局取代:

给动画设置3个先河时间Animation.setStartTime(),然后给视图设置动画View.setAnimation()。

安装动画有二种办法:在xml文件中或然在Java代码中

思路

位移动画:

XML:res/anim/anim_translate.xml

<translate

        android:fromXDelta=”0%”

        android:toXDelta=”100%”

        android:duration=”300″/>

Animation
animation=AnimationUtils.loadAnimation(this,R.anim.anim_translate);

imageView.startAnimation(animation);

注:

fromXDelta:浮点数与比例,初步时X轴的偏移量。表明情势:使用像素相对于健康地点,如:”5″;使用比例绝对于成分自个儿的肥瘦,如”5%”,或然相对于父控件的大幅度,如”5%p”。formYDelta同理。

toXDelta:截止时X轴的偏移量。toYDelta 同理。

Android Code:

TranslateAnimation translateAnimation=new
TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f,
Animation.RELATIVE_TO_SELF,1.0f,Animation.RELATIVE_TO_SELF,0.0f,
Animation.RELATIVE_TO_SELF,0.0f);

translateAnimation.setDuration(300);

imageView.startAnimation(translateAnimation);

动画循环:

ca88亚洲城网站 2

circu_anim

注:

duration:动画持续的时刻,飞秒;

fillAfter:动画停止时,是或不是停在结尾一帧;

fillBefore:动画为止时,是不是停留在率先帧;

repeatCount:动画循环的次数,暗许为 0 次不循环,-1
(Animation.INFINITE)为极端循环;

repeatMode:循环的情势,Animation.REVEPRADOSE是从三回动画为止起初,Animation.RESTA途乐T是从动画的起来处循环;

interpolator:插值器。

  1. case R.id.alphaButton:    
  2.             Animation alphaAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);    
  3.             mImageView.startAnimation(alphaAnimation);    
  4.             break;    
  5.     
  6.         case R.id.scaleButton:    
  7.             Animation scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);    
  8.             mImageView.startAnimation(scaleAnimation);    
  9.             break;    
  10.     
  11.         case R.id.rotateButton:    
  12.             Animation rotateAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate);    
  13.             mImageView.startAnimation(rotateAnimation);    
  14.             break;    
  15.     
  16.         case R.id.translateButton:    
  17.             Animation translateAnimation = AnimationUtils.loadAnimation(this, R.anim.translate);    
  18.             mImageView.startAnimation(translateAnimation);    
  19.             break;  

waitingviw.gif

插值器( Interpolators)

上边的表指定每一种插值器使用的财富:

ca88亚洲城网站 3

interpolator

在XML文件中,通过android:interpolator属性使用。如:

<set
android:interpolator=”@android:anim/accelerate_interpolator”>

</set>

Android Code:

RotateAnimation
rotateAnimation=newRotateAnimation(0.0,
90.0, 50%, 50%);

rotateAnimation.setDuration(300);

rotateAnimation.setInterpolator(new
AccelerateInterpolator());//越转越快

imageView.startAnimation(rotateAnimation);

插值器效果:

AccelerateDecelerateInterpolator():起先和了结慢,中间加快。

AccelerateInterpolator():刚初始慢,一向加快。

AnticipateInterpolator():起首走下坡路,然后飞速向前。

AnticipateOvershootInterpolator():开首走下坡路,然后急迅向前,超越目的值,再回到目的值。

BounceInterpolator():最后反弹。

CycleInterpolator(float cycles):循环指定的次数,速率随正弦曲线变化。

DecelerateInterpolator()、DecelerateInterpolator(float
factor):一始发快,然后减速;factor:速度差的品位。

LinearInterpolator():速率不变。

OvershootInterpolator()、OvershootInterpolator(float
tension):疾速向前,超越目的值,然后回到;tension:领先的量。

问题:

进过补间动画变换的对象只是表面(大小、地方、反射率等)暴发了变更,对象的自然属性并未改变,事件响应的职位也为改观。

setInterpolator(newDecelerateInterpolator()):减速

  • 第一要有两个小圆
  • 分别完结多少个小圆的卡通
  • 怎么着便民的显示动画

光滑度动画:

XML:res/anim/anim_alpha.xml

<alpha

        android:duration=”300″

        android:fromAlpha=”0.0″

        android:toAlpha=”1.0″/>

Animation
animation=AnimationUtils.loadAnimation(this,R.anim.anim_alpha);

imageView.startAnimation(animation);

注:

fromAlpha:动画初始时的反射率;0.0晶莹剔透,1.0不透明。

toAlpha:动画为止时反射率;0.0透明,1.0不透明。

Android Code:

AlphaAnimation localAlphaAnimation =new AlphaAnimation(0.0,1.0);

localAlphaAnimation.setDuration(300);

imageView.startAnimation(localAlphaAnimation);

以及其余部分一定的卡通效果

二.依次圆的卡通片的落到实处

先说Bellamy下一体动画进程,整个动画可以解释为多少个级次

  • 首先阶段

率先阶段.gif

  1. 中级小球从1倍的大大小小缩放到0.7倍的分寸

scale_small = new ScaleAnimation(1f, 0.7f, 1f, 0.7f, circleRadius, circleRadius);```
 -  左边的小球从1倍的大小缩放到0.7倍的大小 ,并且绕着中间小球旋转360度,同时向左边4倍于半径距离移动 ,缩小的动画复用上面的 

left_ratote = new RotateAnimation(359f, 0f, 3 * circleRadius,
circleRadius);
left_translate_to_left = new TranslateAnimation(0, -rotatoRadius, 0,
0);

 - 右边的小球从1倍的大小缩放到0.7倍的大小 ,并且绕着中间小球旋转360度,同时向右边4倍于半径距离移动 ,缩小的动画同样复用上面的 

right_rotate = new RotateAnimation(359f, 0f, -circleRadius,
circleRadius);
right_translate_to_right = new TranslateAnimation(0, rotatoRadius, 0,
0);

分别创建三个动画集,添加各自的动画,并且设定动画时间以及``setFillAfter(true)``,使第一阶段动画结束后保持在结束的位置,使第二阶段的动画能够连接上。分别给小球设定动画,并且给其中一个动画集设定监听事件,结束播放第二阶段的动画。

left_translate_rotate_scale.setAnimationListener(new
Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Log.e("wv", "left_translate_rotate_scale finish");

            if (!stop) {
                if (dismiss) {
                    //添加 消失动画
                    addDismissAnima(mid_scale_big, left_translate_scale, right_translate_scale);

                }
                clear();

// 初阶第2个动画集
c1.startAnimation(mid_scale_big);
c2.startAnimation(left_translate_scale);
c3.startAnimation(right_translate_scale);

            }
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });



***
- **第二阶段**

![第二阶段.gif](http://upload-images.jianshu.io/upload_images/853620-11669339398d267c.gif?imageMogr2/auto-orient/strip)
 1.  中间小球从0.7倍的大小放大到1倍的大小  

scale_big = new ScaleAnimation(0.7f, 1f, 0.7f, 1f, circleRadius,
circleRadius);“`

  • 左手的小球从0.7倍的高低放大到1倍的大小 ,同时向左侧4倍于半径距离移动
    ,放大的动画复用上边的

left_translate_to_right = new TranslateAnimation(-rotatoRadius, 0, 0, 0);
  • 左边的小球从0.7倍的深浅放大到1倍的大小 同时向左边4倍于半径距离移动
    ,放大的卡通片同样复用下边的

right_translate_to_left = new TranslateAnimation(rotatoRadius, 0, 0, 0);

重新分别创制多少个动画集,添加各自的卡通片,并且设定动画时间以及setFillAfter(true),使第二阶段动画停止后保持在竣事的地方,使第一等级的卡通可以接连上。分别给小球设定动画,并且给内部叁个动画集设定监听事件,停止播放第一品级的卡通,这里的监听事件类似于第一阶段的,就不贴出代码了。


  • 其三等级

    其三阶段.gif

  • 在自由二个品级触发了截止动画的风浪(可以在前方八个阶段处看到二个布尔类型的
    dismiss标志来给动画集添加消失动画),给那么些阶段的各类动画集添加如下多少个卡通:
    让小球从1倍的轻回看大到2倍的高低

scale_bigger = new ScaleAnimation(1f, 2f, 1f, 2f, circleRadius, circleRadius);

让小球光滑度从 1 到 0 变化

  alpha_low = new AlphaAnimation(1f, 0f);

给其中二个动画片(scale_bigger /alpha_low
)设定监听事件,当停止时清空所有动画,设定小球的发光度为
0(使窗口没有时不至于看到小球),同时调用对应的回调方法

scale_bigger.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                c1.setAlpha(0f);
                c2.setAlpha(0f);
                c3.setAlpha(0f);
                clear();
                stop = true;
                listener.onFinish();
                Toast.makeText(context, "dismiss", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });

缩放动画:

XML:res/anim/anim_scale.xml

<scale

        android:duration=”300″

        android:fromXScale=”0.0″

        android:fromYScale=”0″

        android:pivotX=”50%”

        android:pivotY=”50%”

        android:toXScale=”1.0″

        android:toYScale=”1.0″/>

Animation
animation=AnimationUtils.loadAnimation(this,R.anim.anim_scale);

imageView.startAnimation(animation);

注:

fromXScale:起始时横向(X轴)的高低;1.0指没有改变。fromYScale同理。

toXScale:动画停止时纵向(Y轴)的分寸;1.0指没有更改。toYScale同理。

pivotX:对象缩放时,X轴坐标保持不变的地方。pivotY同理。

Android Code:

ScaleAnimation localScaleAnimation =new
ScaleAnimation(0.0,1.0,0.0,1,0.5F,0.5F);

localScaleAnimation.setDuration(300);

imageView.startAnimation(localScaleAnimation);

4.     Translate:移动效果


旋转动画:

XML:res/anim/anim_rotate.xml

<rotate

        android:duration=”300″

        android:fromDegrees=”0.0″

        android:toDegrees=”90.0″

        android:pivotX=”50%”

        android:pivotY=”50%”/>

Animation
animation=AnimationUtils.loadAnimation(this,R.anim.anim_rotate);

imageView.startAnimation(animation);

Android Code:

RotateAnimation rotateAnimation=new
RotateAnimation(0.0,
90.0, 50%, 50%);

rotateAnimation.setDuration(300);

imageView.startAnimation(rotateAnimation);

注:

构造函数:RotateAnimation(float fromDegrees, float toDegrees, int
pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

ca88亚洲城网站,pivotXType:用于描述pivotXValue的品种。

Animation.ABSOLUTE, 三个切实的数值;

Animation.RELATIVE_TO_SELF,相对自己的百分比;

Animation.RELATIVE_TO_PARENT,相对父控件的比例。

pivotXValue:1个具体的值后百分比,含义由pivotXType决定。

setInterpolator(new LinearInterpolator()):匀速

github地址,欢迎大家指出修改意见

  1. 1.  <?xml version=”1.0″ encoding=”utf-8″?>    
  2. 2.  <set xmlns:android=”http://schemas.android.com/apk/res/android”    
  3. 3.      android:interpolator=”@android:anim/accelerate_interpolator” >    
  4. 4.      
  5. 5.      <translate    
  6. 6.          android:duration=”2000″    
  7. 7.          android:fromXDelta=”50%”    
  8. 8.          android:fromYDelta=”0%”    
  9. 9.          android:toXDelta=”100%”    
  10. 10.         android:toYDelta=”100%” />    
  11. 11.     
  12. 12. </set>    

三.达成一句话让该等待加载动画附着于页面任意二个View上

此处运用了单例情势的思想

    private static WaitingView wv;

    private OnFinish listener = new OnFinish() {

        @Override
        public void onFinish() {
            popupWindow.dismiss();
            wv.stop();
            wv.resetAnima();
        }
    };


    private static PopupWindow popupWindow;


    public static void showWaitingView(Context context, View view,int width,int height, int thecolor, float theradius,int thebackgroundColor ) {

        wv = new WaitingView(context);
        color = thecolor;
        circleRadius  = theradius;
        windowWidth = width;
        windowHeight = height;
        backgroundColor = thebackgroundColor;

        View layoutView = LayoutInflater.from(context).inflate(R.layout.pupop, null);
        layoutView.setBackgroundColor(backgroundColor);

        wv = (WaitingView) layoutView.findViewById(R.id.id_wv);

        wv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                wv.dismiss();

            }
        });


        popupWindow = new PopupWindow(layoutView, windowWidth, windowHeight,
                false);
        popupWindow.showAtLocation(view, Gravity.CENTER, 0, 0);
        wv.start();

    }
    public static boolean isExist() {
        return wv != null;
    }

    public static void close() {
        wv.dismiss();
    }

R.layout.pupop.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <network.scau.com.asimplewaitingdemo.WaitingView
        android:id="@+id/id_wv"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>

先实例化三个静态的靶子,通过showWaitingView()艺术来调用该实例,并贯彻在二个Popupwindow中显示,该Popupwindow屈居在传播的View上。


结束语
刚开端接触android 的卡通,大概有好多地点领会错误要求鼎新,欢迎大家留言。

2.    
创造xml文件,并首先进入set标签(set标签就一定于Java代码中的AnimationSet)

先上个GIF图
为了这么些动画专门去下载了LICEcap,挺好用的工具

android:interpolator=”@android:anim/cycle_Interpolator”:动画循环播放特定次数,速率改变沿着正弦曲线

一.CircleView的实现

自定义三个圆类,有设置颜色,半径,以及圆上展现的文字的章程。

    protected void onDraw(Canvas canvas) {

        //画笔设置颜色
        mPaint.setColor(circleColor);
        mPaint.setAntiAlias(true);
        //画一个圆
        canvas.drawCircle(mViewWidth / 2, mViewHeight / 2, circleRadius, mPaint);
        //设置文字
        if(mText!=null){
            mPaint.setTextSize(mViewHeight*7/8);
            float textWidth = mPaint.measureText(mText);
            float percent = (circleRadius * 2)/textWidth;
            mPaint.setColor(textColor);
            canvas.drawText(mText,mViewWidth /2 - textWidth/2,  
                                mViewHeight/2+mPaint.getTextSize()/3 ,mPaint);
        }

    }

**
注意重写onMeasure()艺术时,再次来到的高和宽要依据圆的半径来设,这样能使全部view最靠近整个圆。**

 

在XML中安装动画效果步骤:

java代码

 

 

 

 

[java] view
plain
 copy

 

2.Frame-By-Frame
Animations:该类可以成立贰个Drawable连串,那一个Drawable可以依照指定的事件间隔3个三个来得,和动画几乎

  • android:duration:设置动画持续时间
  • android:fillAfter:要是fillAfter设为true,则动画执行后,控件将停留在动画停止的动静
  • android:fillBefore:若是fillBefore设为true,则动画执行后,控件将再次回到动画先河的情况
  • android:startOffset(long
    startOffset):设置动画执行此前等待的时刻(单位:微秒)
  • android:repeatCount(int repeatCount):设置动画重复的次数
  • android:interpolator:设置动画的转移速度,其值: 

 

1.     在res文件夹下新建二个名为anim的文件夹

那么通用的性子:

android:interpolator=”@android:anim/linear_Interpolator”:匀速

android:interpolator=”@android:anim/accelerate_interpolator”:加速

  1. case R.id.alphaButton:    
  2.            // 创立三个AnimationSet对象(AnimationSet是存放在两个Animations的汇集)    
  3.            AnimationSet animationSet = new AnimationSet(true);    
  4.            // 创设2个AlphaAnimation对象(参数表示从一点一滴不透明到完全透明)    
  5.            AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);    
  6.            // 设置动画执行的时刻(单位:微秒)    
  7.            alphaAnimation.setDuration(1000);    
  8.            // 将AlphaAnimation对象添加到AnimationSet当中    
  9.            animationSet.addAnimation(alphaAnimation);    
  10.            // 使用ImageView的startAnimation方法开始施行动画    
  11.            mImageView.startAnimation(animationSet);    
  12.            break;    
  13.    
  14.        case R.id.scaleButton:    
  15.            // 创设1个AnimationSet对象(AnimationSet是存放在多个Animations的集合)    
  16.            animationSet = new AnimationSet(true);    
  17.            // 创立二个ScaleAnimation对象(以有个别点为骨干缩放)    
  18.            ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1, 0.1f,    
  19.                    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);    
  20.            // 设置动画执行在此之前等待的大运(单位:阿秒)    
  21.            scaleAnimation.setStartOffset(1000);    
  22.            // 设置动画执行的小时(单位:飞秒)    
  23.            scaleAnimation.setDuration(2000);    
  24.            // 固然fillAfter设为true,则动画执行后,控件将停留在动画截止的地方    
  25.            // 运转了瞬间发觉以下奇怪的现象    
  26.            // scaleAnimation.setFillAfter(true);不会滞留在动画截至的景况    
  27.            // animationSet.setFillAfter(true);则会滞留在动画甘休的状态    
  28.            animationSet.setFillAfter(true);    
  29.                        // 将ScaleAnimation对象添加到AnimationSet当中    
  30.                        animationSet.addAnimation(scaleAnimation);    
  31.                        // 使用ImageView的startAnimation方法早先实践动画    
  32.                        mImageView.startAnimation(animationSet);    
  33.            break;    
  34.    
  35.        case R.id.rotateButton:    
  36.            // 创造三个AnimationSet对象(AnimationSet是存放八个Animations的集聚)    
  37.            animationSet = new AnimationSet(true);    
  38.            // 创制二个RotateAnimation对象(以有些点为圆心旋转360度)    
  39.            RotateAnimation rotateAnimation = new RotateAnimation(0, 360,    
  40.                    Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.25f);    
  41.            // 设置动画执行的时刻(单位:毫秒)    
  42.            rotateAnimation.setDuration(5000);    
  43.            // 将RotateAnimation对象添加到AnimationSet中等    
  44.            animationSet.addAnimation(rotateAnimation);    
  45.            // 使用ImageView的startAnimation方法开首执行动画    
  46.            mImageView.startAnimation(animationSet);    
  47.            break;    
  48.    
  49.        case R.id.translateButton:    
  50.            // 创造一个AnimationSet对象(AnimationSet是存放在多少个Animations的集合)    
  51.            animationSet = new AnimationSet(true);    
  52.            // 创立多少个RotateAnimation对象(从某些点运动到另3个点)    
  53.            TranslateAnimation translateAnimation = new TranslateAnimation(    
  54.                    Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0.5f,    
  55.                    Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1.0f);    
  56.            // 设置动画执行的小运(单位:阿秒)    
  57.            translateAnimation.setDuration(1000);    
  58.            // 将TranslateAnimation对象添加到AnimationSet中等    
  59.            animationSet.addAnimation(translateAnimation);    
  60.            // 使用ImageView的startAnimation方法初阶进行动画    
  61.            mImageView.startAnimation(animationSet);    
  62.            break;    

[java] view
plain
 copy

 

 

  1. 1.  <?xml version=”1.0″ encoding=”utf-8″?>    
  2. 2.  <set xmlns:android=”http://schemas.android.com/apk/res/android”    
  3. 3.      android:interpolator=”@android:anim/accelerate_interpolator” >    
  4. 4.      
  5. 5.      <rotate    
  6. 6.          android:duration=”5000″    
  7. 7.          android:fromDegrees=”0″    
  8. 8.          android:pivotX=”50%”    
  9. 9.          android:pivotY=”50%”    
  10. 10.         android:toDegrees=”360″ />    
  11. 11.     
  12. 12. </set>   

setInterpolator(new
CycleInterpolator()):动画循环播放特定次数,速率改变沿着正弦曲线

1.     Alpha:淡入淡出效果

android:interpolator=”@android:anim/decelerate_interpolator”:减速

setInterpolator(newAccelerateInterpolator()):加速

3.     Rotate:旋转效果

[java] view
plain
 copy

 

setInterpolator(newAccelerateDecelerateInterpolator()):先加速,后减速

[java] view
plain
 copy

Animation从全体来说可以分成两类:

java代码已毕

3.    
在Set标签中参加alpha,scale,rotate,translate标签(约等于Java代码中的AlphaAnimation,ScaleAnimation,RotateAnimation,TranslateAnimation)

 

  1. 1.  <?xml version=”1.0″ encoding=”utf-8″?>    
  2. 2.  <set xmlns:android=”http://schemas.android.com/apk/res/android”    
  3. 3.      android:interpolator=”@android:anim/accelerate_interpolator” >    
  4. 4.      
  5. 5.      <alpha    
  6. 6.          android:duration=”500″    
  7. 7.          android:fromAlpha=”1.0″    
  8. 8.          android:startOffset=”500″    
  9. 9.          android:toAlpha=”0.0″ />    
  10. 10.     
  11. 11. </set>    

5.     使用控件的startAnimation()方法执行这些Animation对象

translate.xml

rotate.xml

Android:interpolator=”@android:anim/accelerate_decelerate_interpolator”:先加速,后减速

 

Tweened Animations也有各类档次:

使用:

1.Tweened Animations:该类提供了旋转,移动,伸展,淡入淡出等功能

[java] view
plain
 copy

scale.xml

示例:

Java代码中的通用属性:

2.     Scale:缩放效果

  • setDuration(long duration米尔is):设置动画持续事件(单位:微秒)
  • setFillAfter(boolean
    fillAfter):借使fillAfter设为true,则动画执行后,控件将停留在动画截止的情形
  • setFillBefore(boolean
    fillBefore):假若fillBefore设为true,则动画执行后,控件将回到动画起首的事态
  • setStartOffset(long
    startOffset):设置动画执行以前等待的时刻(单位:微秒)
  • setRepeatCount(int repeatCount):设置动画重复的次数
  • setInterpolator(Interpolator i):设置动画的转移速度
  1. 1.  <?xml version=”1.0″ encoding=”utf-8″?>    
  2. 2.  <set xmlns:android=”http://schemas.android.com/apk/res/android”    
  3. 3.      android:interpolator=”@android:anim/accelerate_interpolator” >    
  4. 4.      
  5. 5.      <scale    
  6. 6.          android:duration=”2000″    
  7. 7.          android:fromXScale=”1.0″    
  8. 8.          android:fromYScale=”1.0″    
  9. 9.          android:pivotX=”50%”    
  10. 10.         android:pivotY=”50%”    
  11. 11.         android:toXScale=”0.0″    
  12. 12.         android:toYScale=”0.0″ />    
  13. 13.     
  14. 14. </set>   

 

 

 

 

[java] view
plain
 copy

 

 

4.    
在Java代码中利用AnimationUtils的loadAnimation方法来加载XML文件,并得到2个Animation对象

相关文章