前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
在附件里面我会把这两种效果的实例代码上传上来供大家下载,现在贴在方便使用的代码。
Tween动画
Alpha ---- 淡入淡出,Scale ---- 缩放效果,Translate ---- 移动效果,Rotate ---- 旋转
Frame动画
播放一组连续的图片
alpha_in.xml
scale_in.xml
translate_in.xml
rotate_in.xml
Frame动画
播放一组连续的图片
drawable --- drawable_anim.xml
下面会有一个实例
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
在附件里面我会把这两种效果的实例代码上传上来供大家下载,现在贴在方便使用的代码。
Tween动画
Alpha ---- 淡入淡出,Scale ---- 缩放效果,Translate ---- 移动效果,Rotate ---- 旋转
Frame动画
播放一组连续的图片
alpha_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="3000" android:fromAlpha="0.1" android:toAlpha="1.0" /> <!-- 透明度控制动画效果 alpha 浮点型值: fromAlpha 属性为动画起始时透明度 toAlpha 属性为动画结束时透明度 说明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 --> </set>
scale_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:duration="1500" android:fillAfter="false" android:fromXScale="0.5" android:fromYScale="0.5" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0" /> </set> <!-- 尺寸伸缩动画效果 scale 属性:interpolator 指定一个动画的插入器 在我试验过程中,使用android.res.anim中的资源时候发现 有三种动画插入器: accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 浮点型值: fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 toXScale 属性为动画结束时 X坐标上的伸缩尺寸 fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 toYScale 属性为动画结束时Y坐标上的伸缩尺寸 说明: 以上四种属性值 0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大 pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 说明: 以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 布尔型值: fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用 -->
translate_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 定义从左向右进入的动画 --> <translate android:duration="1500" android:fromXDelta="-100%" android:toXDelta="0" /> <!-- <translate android:duration="2000" android:fromXDelta="30" android:fromYDelta="30" android:toXDelta="-80" android:toYDelta="300" /> --> <!-- translate 位置转移动画效果 整型值: fromXDelta 属性为动画起始时 X坐标上的位置 toXDelta 属性为动画结束时 X坐标上的位置 fromYDelta 属性为动画起始时 Y坐标上的位置 toYDelta 属性为动画结束时 Y坐标上的位置 注意: 没有指定fromXType toXType fromYType toYType 时候, 默认是以自己为相对参照物 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 --> </set>
rotate_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="3000" android:fromDegrees="0" android:interpolator="@android:anim/decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toDegrees="+350" /> <!-- rotate 旋转动画效果 属性:interpolator 指定一个动画的插入器 在我试验过程中,使用android.res.anim中的资源时候发现 有三种动画插入器: accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 浮点数型值: fromDegrees 属性为动画起始时物件的角度 toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 说明: 当角度为负数——表示逆时针旋转 当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转) pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 说明: 以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 --> </set>
Frame动画
播放一组连续的图片
drawable --- drawable_anim.xml
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/pq1" android:duration="50"/> <item android:drawable="@drawable/pq2" android:duration="50"/> <item android:drawable="@drawable/pq3" android:duration="50"/> <item android:drawable="@drawable/pq4" android:duration="50"/> <item android:drawable="@drawable/pq5" android:duration="50"/> <item android:drawable="@drawable/pq6" android:duration="50"/> </animation-list>
import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AnimationUtils; import android.widget.ImageView; public class MainActivity extends Activity implements OnClickListener{ private ImageView imageView,imageView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.anim_img); imageView2 = (ImageView) findViewById(R.id.anim_draw_img); findViewById(R.id.anim_alpha).setOnClickListener(this); findViewById(R.id.anim_scale).setOnClickListener(this); findViewById(R.id.anim_translate).setOnClickListener(this); findViewById(R.id.anim_rotate).setOnClickListener(this); findViewById(R.id.anim_drawable).setOnClickListener(this); } @Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.anim_alpha: if(imageView.getVisibility()==View.INVISIBLE){ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.alpha_in)); imageView.setVisibility(View.VISIBLE); }else{ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.alpha_out)); imageView.setVisibility(View.INVISIBLE); } break; case R.id.anim_scale: if(imageView.getVisibility()==View.INVISIBLE){ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.scale_in)); imageView.setVisibility(View.VISIBLE); }else{ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.scale_out)); imageView.setVisibility(View.INVISIBLE); } break; case R.id.anim_translate: if(imageView.getVisibility()==View.INVISIBLE){ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.translate_in)); imageView.setVisibility(View.VISIBLE); }else{ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.translate_out)); imageView.setVisibility(View.INVISIBLE); } break; case R.id.anim_rotate: if(imageView.getVisibility()==View.INVISIBLE){ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.rotate_in)); imageView.setVisibility(View.VISIBLE); }else{ imageView.setAnimation(AnimationUtils .loadAnimation(this, R.anim.rotate_out)); imageView.setVisibility(View.INVISIBLE); } break; case R.id.anim_drawable: imageView2.setBackgroundResource(R.drawable.drawable_anim); AnimationDrawable animationDrawable = (AnimationDrawable) imageView2.getBackground(); // animationDrawable.addFrame(getResources().getDrawable(R.drawable.pq1), 50); // animationDrawable.addFrame(getResources().getDrawable(R.drawable.pq2), 50); // animationDrawable.addFrame(getResources().getDrawable(R.drawable.pq3), 50); animationDrawable.start(); break; default: break; } } }
下面会有一个实例
- MyAnimation.zip (2.4 MB)
- 下载次数: 8
发表评论
-
2048源码(核心算法有,缺少几个anctionbar,以后补上)
2014-09-25 13:22 15402048游戏基本上有四部分组成, 1:主activity,包含 ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1902区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 543最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 662多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 947Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 678BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 466说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 4361:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 539下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 891不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 520不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 715android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1443Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 508xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 548目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 475直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2555FragmentTransaction 进行数据传递 imp ... -
ActionBar简介
2014-07-31 10:47 716Action bar是一个标识应用程序和用户位置的窗口功能,并 ... -
fragment简单实用及数据传递(1)
2014-07-30 16:29 743Fragment的使用相关 使用Fragment时,需要继承 ...
相关推荐
在Android开发中,动画效果是提升用户体验和应用视觉吸引力的关键元素。本文将深入探讨"Android动画效果大全",包括各种类型的动画以及如何基于这些技术实现炫酷的特效。 首先,Android提供两种主要的动画机制:帧...
本篇将详细介绍如何在Android中实现PopupWindow、Activity的推出推入、缩放等动画效果。 首先,我们关注PopupWindow的动画效果。PopupWindow是一个可以浮现在Activity之上的窗口组件,通常用于创建下拉菜单、提示框...
在Android开发中,动画效果是提升用户体验的关键因素之一。Android 动画效果集合是一个资源库,专注于自定义动画,帮助开发者快速学习并实现各种动画效果,以满足在实际项目中的多样化需求。本资源集合通常会包含...
首先,让我们了解Android中的基本动画类型。Android支持两种主要的动画机制:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画用于改变视图的位置、大小、透明度等属性,它通过在一段时间内平滑地...
"Android 动画效果translate、scale、alpha、rotate详解" Android 动画效果可以分为四种类型:translate、scale、alpha、rotate,每种类型都有其特点和应用场景。 一、translate 动画效果 translate 动画效果是...
在Android开发中,动画效果是提升用户体验的关键因素之一。本文将深入探讨一款强大的框架,它提供了超过200种不同的Android动画效果,帮助开发者轻松实现各种动态视觉效果,从而为用户带来更加生动、吸引人的应用...
安卓源码包android 动画效果Android 烟花效果源码等21个合集: activity切换特效.rar Android Layout UI 首页加载过渡动画,星期变化动画.rar android 仿真翻页效果.rar Android 烟花效果源码.zip Android仿苹果的...
在Android开发中,动画效果是提升用户体验的关键因素之一。Android动画效果包集合了多种基本的动画效果,旨在帮助开发者轻松创建出丰富的用户交互界面。这个资源包中的动画效果经过精心设计,可以为你的应用程序增添...
在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...
在Android开发中,动画效果是提升用户体验的关键因素之一。这篇资料集合了史上最全的Android动画效果,涵盖了图片切换以及各种动态交互设计。以下是对这些关键知识点的详细解释: 1. **Android 动画效果**:Android...
这个名为"数百种Android动画效果源码"的项目,旨在提供一个丰富的动画库,帮助开发者快速理解和应用各种动画效果。下面将详细介绍这个项目中可能包含的知识点,并提供一些关于Android动画设计和实现的深入理解。 1....
本文介绍了Android中动画的基本概念、逐帧动画与渐变动画的区别,并详细说明了在XML文件中以及Java代码中定义动画的具体方法。通过这些基础知识的学习,开发者可以更好地掌握Android动画技术,为应用程序添加更丰富...
在Android开发中,动画效果是提升用户体验的关键因素之一。Android提供了丰富的动画系统,使得开发者能够为应用程序添加各种动态效果,从而提高应用的交互性和吸引力。本文将深入探讨Android动画效果的使用,包括对...
在Android平台上,动画效果是提升用户体验的关键因素,它能让应用变得更加生动、有趣且吸引人。本文将深入探讨Android动画效果编程的基础知识,帮助你理解如何为Android应用添加各种炫酷的视觉效果。 首先,Android...
在Android开发中,动画效果是提升用户体验的关键因素之一。"Android动画效果集合开源APP"是一个专为Android开发者设计的工具包,它集成了多种动画效果,帮助开发者轻松地在应用程序中实现丰富的动态视觉表现。这个...
总结,FrameByFrame动画在Android中是一种简单且直观的实现动态效果的方式,尤其适合于创建像火焰这样的一系列连续变化的视觉效果。通过理解帧动画的工作原理和恰当的资源管理,开发者可以为用户带来更加生动有趣的...
在Android开发中,动画效果是提升用户体验的关键因素之一。"Android动画效果大全源码"提供了一个丰富的资源库,包含了10多种不同的动画效果,适用于各种场景,如界面切换、按钮点击反馈、过渡动画等。这些动画效果...
在Android平台上,动画效果是提升用户体验的关键因素之一。Android提供了丰富的动画系统,使得开发者能够创造出各种炫酷且交互性强的视觉效果。以下是对Android动画效果的详细解释: 1. **属性动画(Property ...
首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...
在Android中,动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。视图动画是早期Android系统中提供的,它并不真正改变UI元素的状态,只是模拟动画效果。而属性动画自API 11...