码迷,mamicode.com
首页 > 其他好文 > 详细

8:Animation的4种动画效果

时间:2017-11-12 12:26:19      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:relative   float   es2017   top   坐标   otto   margin   value   系统   

Animation的4种动画效果,分别为:移动TranslateAnimation/旋转RotateAnimation/淡入淡出AlphaAnimation/缩放ScaleAnimation

1:移动TranslateAnimation

首先是xml文件设置:

<RelativeLayout
            android:id="@+id/capture_crop_view"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:layout_below="@id/capture_mask_top"
            android:layout_centerHorizontal="true"
            android:background="@drawable/qr_code_bg" >

            <ImageView
                android:id="@+id/capture_scan_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:src="@drawable/scan_line" />
        </RelativeLayout>

图片分别为:

qr_code_bg:

技术分享

scan_line:

技术分享

 

代码:

scanLine = (ImageView) findViewById(R.id.capture_scan_line);
        TranslateAnimation animation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT,
                0.9f);
        animation.setDuration(4500);   //从最上面到最下面持续4.5s
        animation.setRepeatCount(-1);  //从上到下循环次数,这里设置的是动画重复执行的次数,而不是动画执行的次数。故动画执行的次数为动画重复执行的次数加1
                       //Android系统默认每个动画仅执行一次,通过该方法可以设置动画执行多次。 animation.setRepeatMode(Animation.RESTART); scanLine.startAnimation(animation);

 

解析:

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)

参数说明: 

float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;

float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;

float toYDelta这个参数表示动画开始的点离当前View Y坐标上的差值;

4个参数确定移动的起点和终点

 

fromXType:x轴(Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_PARENT);

Animation.RELATIVE_TO_SELF(相对于自身)、Animation.RELATIVE_TO_PARENT(相对于父控件(容器)

fromXValue:第二个参数是第一个参数类型的起始值;

toXType,toXValue:第三个参数与第四个参数是x轴方向的终点参照与对应值;

8个参数也是确定移动的起点和终点

8:Animation的4种动画效果

标签:relative   float   es2017   top   坐标   otto   margin   value   系统   

原文地址:http://www.cnblogs.com/wnpp/p/7821108.html

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