动画功能其实很简单,主要实现过程如下:
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);
}
}
分享到:
相关推荐
Android 平台提供了两类...本例子主要实现了Tweene动画,实现了页面等待、开门、元素旋转平移缩放渐变等功能,并且使用了在Activity界面直接操作动画、重写View处理动画、利用XML处理动画等技术,是非常不错的资源。
Android 动画实现广告播放 主要是图片的平移、缩放效果,当然可以自己添加其他动画效果
Android动画功能实现,博客地址1:https://blog.csdn.net/dreams_deng/article/details/104752619 Android ProgressBar 自定义动画,博客地址2:https://blog.csdn.net/dreams_deng/article/details/104756011
Android窗帘动画,平移动画,渐变动画,采用了canvas画图的方式实现如上三种动画的功能
实现TextView 中Gif表情动画功能
对于游戏等对界面要求较高的程序,一般需要控制View中的具体图像显示(如动画功能)下面介绍实现此功能常用的SurfaceView控制。
这是一个android动画循环移动的demo,实现了两个动画交替播放的功能。
android中属性动画,暂停,播放停止功能的实现
补间动画大小,透明度,移动,旋转,动画集合等动画方式
本文实例讲述了Android开发之图片旋转功能实现方法。分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等...
最近项目中有个需求,需要像《水果忍者》游戏中取得成就后,从屏幕顶部落下一张图片,3秒钟中后自动消失。 我相信大家有很多重方式实现,比如说:TimerTask + Timer。这里我向大家介绍一种比较简单的方式,使用 ...
默认的toast很丑,而且也没有真正提供显示短暂消息的功能。这个库能为toast显示动画反馈,显示到选择按钮或者删除按钮的过度动画。而且toast 的生命周期是自定义的。
Android 界面绘制都是通过 WindowManager 服务来实现的,WindowManager 对象可通过获取 WINDOW_SERVICE 系统服务得到,并因为 WindowManager 继承于 ViewManager ,所以其拥有以下方法 addView(View view, ...
Android技术实现使图像实现动画效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
主要介绍了Android 修改系统关机动画的实现的相关资料,需要的朋友可以参考下
实现android gif图片动画播放功能。首先解析gif动画帧,然后将其绘制到底图,最后使用ImageView显示底图。
本篇文章通过实例给大家分享了Android自定义View实现打钩动画功能的过程和代码分享,有兴趣需要的学习下吧。
翻折动画Demo,日历效果,简单的验证功能实现未做优化处理
Android用opengl实现各种逼真折纸效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
实现android gif图片动画播放功能。首先解析gif动画帧,然后将其绘制到底图,最后使用ImageView显示底图。相应文章链接如下:http://blog.csdn.net/grafx/article/details/48915195