前几天弄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 14592048游戏基本上有四部分组成, 1:主activity,包含 ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1862区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 490最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 625多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 888Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 645BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 428说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 3601:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 502下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 857不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 486不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 676android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1399Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 461xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 495目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 435直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2518FragmentTransaction 进行数据传递 imp ... -
ActionBar简介
2014-07-31 10:47 671Action bar是一个标识应用程序和用户位置的窗口功能,并 ... -
fragment简单实用及数据传递(1)
2014-07-30 16:29 688Fragment的使用相关 使用Fragment时,需要继承 ...
相关推荐
PopupWindow动画效果 ,activity布局文件推出推入、缩放、左右进入进出 android动画效果集锦。
Android动画效果--渐变动画,包括Alpha渐变、scale渐变、translate渐变、rotate渐变。并有两种实现动画方式:Java Code实现和XML实现。
Android动画,非常全,基于这些实现特效
安卓源码包android 动画效果Android 烟花效果源码等21个合集: activity切换特效.rar Android Layout UI 首页加载过渡动画,星期变化动画.rar android 仿真翻页效果.rar Android 烟花效果源码.zip Android仿苹果的...
Android 动画效果集合,自定义动画,快速学习,多种动画效果可选,满足大部分工作需求。。。。。。。
200多种Android动画效果的强悍框架
Android动画效果--FrameByFrame动画 Android 动画实现的火焰效果。
史上最全的Android 动画效果,android 动画效果 图片切换 android图片切换 android动画
该项目包含了数百种Android动画效果,直接以 Android 项目的形式展现,直接运行看效果就可以了。
android 动画效果
2.高仿动画效果增加10个 3.ListView集合增加15个 4.自定义控件集合增加17个 5.页面滑动增加4个 共增加48个动画效果 下载app源码的朋友需要把 BAnim FilpLibrary BAnim NineOldLibrary 作为library加载到...
该框架包含android原生动画和自定义动画共300种左右
Android动画效果编程基础 Android的animation由四种类型组成 ndroid动画总结 逐帧动画(frame-by-frame animation),这种动画和GIF一样,一帧一帧的显示来组成动画效果;
Android动画效果 添加购物车抛物线 有问题可以到http: blog csdn net a253664942 article details 45157103留言
Android动画效果-切换Activity动画,切换Activity时的淡入淡出和缩放进入退出效果
Android中使用SVG实现炫酷动画效果Android中使用SVG实现炫酷动画效果
包括 旋转动画 3D动画 飞入动画 Notifycation 进度条动画 dialog动画 loading动画 水波跳动动画 listview删除 等等 N多种动画效果 集合github上的大部分动画效果。欢迎评价。
android 动画大全 各种效果 欢迎下载android 动画大全 各种效果 欢迎下载android 动画大全 各种效果 欢迎下载
Android动画效果translate、scale、alpha、rotate详解