`
修博龙泉
  • 浏览: 313264 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android动画功能实现

 
阅读更多
动画功能其实很简单,主要实现过程如下
android动画:主要有一下四种方式
    alpha        渐变透明度动画效果
    scale        渐变尺寸伸缩动画效果
    translate  画面转换位置移动动画效果
    rotate      画面转移旋转动画效果
android动画属性说明:
Tween Animation共同的节点属性
属性[类型] 功能 备注
Duration[long] 属性为动画持续时间 时间以毫秒为单位
fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用

interpolator 指定一个动画的插入器 有一些常见的插入器
accelerate_decelerate_interpolator  加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
repeatCount[int] 动画的重复次数
RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward
startOffset[long] 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int] 定义动画的Z Order的改变 0:保持Z Order不变
1:保持在最上层
-1:保持在最下层


alpha 渐变透明度动画效果

fromAlpha 属性为动画起始时透明度

0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字

duration为动画持续时间,ms单位

fromXScale[float] fromYScale[float] 为动画起始时,X、Y坐标上的伸缩尺寸 0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大
toXScale [float]
toYScale[float] 为动画结束时,X、Y坐标上的伸缩尺寸
pivotX[float]
pivotY[float] 为动画相对于物件的X、Y坐标的开始位置 属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

fromXDelta
toXDelta 为动画、结束起始时 X坐标上的位置
fromYDelta
toYDelta 为动画、结束起始时 Y坐标

fromDegrees 为动画起始时物件的角度 说明
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
pivotX
pivotY 为动画相对于物件的X、Y坐标的开始位 说明:以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置

主要代码

1:首先定义一个动画的xml文件。多个动画需要设置不同的xml文件,android动画文件一般放在/res/anim/xx.xml。动画文件一般是在java代码中直接调用。

myanim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- 透明度变化 -->
	 <alpha  
	 	android:fromAlpha="0.1"
	 	android:toAlpha="100"
	 	android:duration="2000"
	 />
	 <!--android:duration  属性为动画持续时间 	时间以毫秒为单位 -->
	 <!-- 尺寸变化 -->
	 <scale
	     android:interpolator="@android:anim/decelerate_interpolator"
	     android:fromXScale="0.0"
	     android:toXScale="1.4"
	     android:fromYScale="0.0"
	     android:toYScale="1.4"
	     android:pivotX="50%"
	     android:pivotY="50%"
	     android:fillAfter="false"
	     android:duration="3000"
	 />
	 <!--位置变化 -->
	 <translate
		android:fromXDelta="30"
		android:toXDelta="-80"
		android:fromYDelta="30"
		android:toYDelta="300"
		android:duration="2000"/>
	 <!--旋转变化 -->
	 <rotate
		android:interpolator="@android:anim/accelerate_decelerate_interpolator"
		android:fromDegrees="0"
		android:toDegrees="+350"
		android:pivotX="50%"
		android:pivotY="50%"
		android:duration="3000" 
	/>   
</set>


2:在main.xml 添加一个imageview控件用来显示android动画
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
	
	<ImageView 
	    android:id="@+id/myImageView"
	    android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/ic_launcher"
	    /> 
	    <!--  com.mixian.activity.MyView
	    android:id="@+id/myview"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"    
	/>  --> 
</LinearLayout>

3:编写调用java代码
 Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);
        ImageView imageView = (ImageView)findViewById(R.id.myImageView);
        imageView.startAnimation(animation);

package com.mixian.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class DrawViewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);
        ImageView imageView = (ImageView)findViewById(R.id.myImageView);
        imageView.startAnimation(animation);
        
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics