动画功能其实很简单,主要实现过程如下:
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中的ListView工作原理。ListView通过复用视图(view recycling)机制提高了性能,当一个item滑出屏幕时,它的视图会被回收并用于显示新的item。因此,在实现折叠动画时,我们需要考虑到...
在Android中,有两种主要类型的动画:属性动画(Property Animation)和视图动画(View Animation)。视图动画较为简单,适用于API等级较低的设备,而属性动画则提供了更强大的功能,可以改变对象的任意属性。对于...
视图动画则是早期版本Android中的动画机制,它主要是通过对视图的位置、大小等属性进行欺骗性改变来实现动画效果。 对于图片的平移和缩放,我们可以使用属性动画中的ObjectAnimator或者ValueAnimator来实现。...
本文将深入探讨如何使用属性动画在Android中实现这种效果。 首先,我们要理解Android属性动画系统的基本概念。属性动画是Android 3.0(API Level 11)引入的一个功能,它允许开发者在没有实际改变视图属性的情况下...
本文将深入探讨在Android中实现的各种动画效果,包括旋转动画、折叠翻转、点赞动画、折叠书架、按钮切换动画以及模糊动画等。 1. **旋转动画**: 旋转动画在Android中可以通过` RotateAnimation `类来实现。开发者...
抖音直播间赠送礼物飘屏动画; 赠送金币动画; 赠送礼物动画; 可单独显示; 可混合显示; 可设置多个礼物集合自动轮播显示; 可自定义设置显示动画和时长; 可自定义UI界面; 可自定义任何代码实现; 源码开源; 可...
Android 平台提供了两类...本例子主要实现了Tweene动画,实现了页面等待、开门、元素旋转平移缩放渐变等功能,并且使用了在Activity界面直接操作动画、重写View处理动画、利用XML处理动画等技术,是非常不错的资源。
在Android中,补间动画主要通过`Animation`类和其子类来实现,如`AlphaAnimation`(透明度变化)、`ScaleAnimation`(缩放)、`TranslateAnimation`(移动)和`RotateAnimation`(旋转)。开发者可以通过调整这些...
在Android中,动画分为两种主要类型:属性动画(Property Animation)和视图动画(View Animation)。粒子动画库可能是基于属性动画系统构建的,因为属性动画提供了更强大的功能,可以改变对象的任意属性,并且支持...
"android实现火箭动画清理内存"这个主题就是关于如何在Android应用程序中结合火箭动画来模拟一个内存清理的过程,从而为用户提供一种直观且有趣的交互方式。在这个过程中,我们将深入探讨`Animation`类和`...
【Android 清理缓存火箭动画Demo】是一个用于展示如何在Android应用中实现类似360清理缓存时出现的火箭升空动画效果的示例项目。这个Demo旨在帮助开发者理解如何结合动画与实际功能,比如清理缓存,来提升用户体验。...
在Android中,可以使用OnTouchListener来实现,当用户按下并持续一段时间后开始录音,上滑则需要监听滑动事件,如GestureDetector或Scroller类,判断上滑动作并取消录音。 3. **动画设计**: 在录音过程中,话筒图标...
然而,为了实现更复杂的功能,如动态加载轮盘元素、调整旋转速度或添加物理模拟等,可能需要深入研究Android的自定义View机制和动画框架。在实践中,不断调试和优化将帮助你打造一个更加真实、流畅的轮盘体验。 ...
本文将深入探讨如何在Android中创建一个动态的菜单展开动画,以此来模仿卫星导航菜单(Satellite Menu)的效果,类似于一个中心点发射出多个选项的动画。这种效果常见于许多现代移动应用,它不仅美观,还能帮助用户...
在Android开发中,创建一个能够显示声波动画的录音应用是一项有趣的挑战,它结合了多媒体处理、用户界面设计以及实时数据可视化。以下是对这个"Android录音的声波动画"项目的关键知识点的详细解释: 1. **Android ...
本篇将深入探讨如何在Android中实现属性动画的暂停和播放停止功能。 首先,我们需要了解属性动画的基本概念。与帧动画(Frame Animation)不同,属性动画不依赖于视图的绘制循环,它会直接改变对象的属性并更新UI。...
Android动画功能实现,博客地址1:https://blog.csdn.net/dreams_deng/article/details/104752619 Android ProgressBar 自定义动画,博客地址2:https://blog.csdn.net/dreams_deng/article/details/104756011
属性动画是Android 3.0(API级别11)及更高版本引入的新功能,它允许开发者对对象的任何属性进行动画处理,而不仅仅是视图的平移、旋转和缩放。视图动画则是在早期版本中使用的,主要包括帧动画(Frame Animation)...
本文将详细讲解如何使用动画来实现这一功能。 首先,侧滑菜单通常由一个主内容视图和一个隐藏的菜单视图组成。在用户触发特定手势(如从屏幕边缘向内滑动)时,菜单视图会从屏幕边缘滑出。这种效果可以通过Android...
在Android中,我们可以使用`ValueAnimator`或者`ObjectAnimator`来创建动画。对于XYZ轴的旋转,我们需要对三个轴分别进行操作。首先,定义一个`AnimatorSet`来组合三个轴的动画: ```java private AnimatorSet ...