Animation旋转的动画

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 stub
			ig1.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值