Animation旋转的动画

来源:互联网 发布:网络诈骗罪到哪里报警 编辑:程序博客网 时间:2024/06/05 01:01

Animation 动画详解 ---alphascaletranslaterotateset

参照文件Animation

动作定义文件应该存放在res/anim文件夹下

Animation类继承的属性:

android:duration        动画持续时间,以毫秒为单位 

android:fillAfter          如果设置为true,控件动画结束时,将保持动画最后时的状态

android:fillBefore       如果设置为true,控件动画结束时,还原到开始动画前的状态

android:interpolator  设定插值器,其实就是指定的动作效果,比如弹跳效果

 

1. scale:渐变尺寸伸缩动画效果。以下几个属性:

android:fromXScale    起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;

android:toXScale        结尾的X方向上相对自身的缩放比例,浮点值;

android:fromYScale  android:toYScale

android:pivotX            缩放起点X轴坐标,可以是数值、百分数、百分数三种样式,比如 5050%50%p,当为数值时,表示在当前View的左上角,即原点处加上50px,做为起始缩放点;如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p,那么就是表示在当前的左上角加上父控件宽度的50%做为起始点x轴坐标。(具体意义,后面会举例演示)

android:pivotY           缩放起点Y轴坐标,取值及意义跟android:pivotX一样。

 

2.alpha :标签——调节透明度

android:fromAlpha   动画开始的透明度,从0.0 --1.0 0.0表示全透明,1.0表示完全不透明

android:toAlpha       动画结束时的透明度,也是从0.0 --1.0 0.0表示全透明,1.0表示完全不透明

3.rotate:标签——旋转

android:fromDegrees     开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数

android:toDegrees         结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数

围绕自身从0逆时针旋转650度 

android:fromDegrees="0"     

android:toDegrees="- 650"

4.translate:标签 —— 平移

android:fromXDelta     起始点X轴坐标,可以是数值、百分数、百分数三种样式,比如 5050%50%p

android:fromYDelta    起始点Y轴从标

android:toXDelta         结束点X轴坐标

android:toYDelta        结束点Y轴坐标

5.set标签自已是没有属性的,他的属性都是从Animation继承而来,但当它们用于Set标签时,就会对Set标签下的所有子控件都产生作用

 

文件所属:

 

主程序代码:

package com.keman.animation;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageView;public class AnimationActivity extends Activity {    /** Called when the activity is first created. */    Button bt;    ImageView ig1;    ImageView ig2;    ImageView ig3;    ImageView ig4;    Animation scaleAnimation;@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);            scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.scaleanim);                bt = (Button) findViewById(R.id.button1);                ig1 = (ImageView) findViewById(R.id.imageView1);        ig2 = (ImageView) findViewById(R.id.imageView2);        ig3 = (ImageView) findViewById(R.id.imageView3);        ig4 = (ImageView) findViewById(R.id.imageView4);    bt.setOnClickListener(new View.OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stubig1.startAnimation(scaleAnimation);ig2.startAnimation(scaleAnimation);ig3.startAnimation(scaleAnimation);ig4.startAnimation(scaleAnimation);}});}}


scaleanim.xml:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="2000"        android:interpolator="@android:anim/decelerate_interpolator">    <!-- ̵·à--><!--אфµ䌵·à -->    <scale         android:fromXScale="0.0"        android:toXScale="1.0"        android:fromYScale="0.0"        android:toYScale="1.0"                android:pivotX="50%"        android:pivotY="50%"        />        <!-- ѽת -->    <rotate         android:fromDegrees="0"        android:toDegrees="360"                android:pivotX="50%"        android:pivotY="50%"        />    <!-- ͸ķ¶Ơ--><alpha    android:fromAlpha="0.0"    android:toAlpha="1.0"    /></set>


main的布局图片如下:

 

 

由于不知道怎么传小视频,图片传的那么麻烦。就简单描述一下效果:

点击最上面<旋转吧,兄弟>按钮,四个imageView中的图片会透明度由低到高、沿着各自的中心、从中心由小到大、逆时针旋转。如果你看完代码就知道效果的话,说明你已经看懂了。

1 0
原创粉丝点击