Animation总体上来说有三种动画:FrameAnimation、TweenAnimation以及自定义动画。
前面两种动画,在developer里有简单的介绍,有兴趣的同学可以看下
[url] http://developer.android.com/guide/topics/graphics/view-animation.html[/url]
(一)FrameAnimation
简单说就是与电影胶片一样,将图片连续播放组成动画.
在res/drawable中 定义.xml文件,设置播放的图片 duration图片播放时间
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/loading_1" android:duration="160" />
<item android:drawable="@drawable/loading_2" android:duration="160" />
<item android:drawable="@drawable/loading_3" android:duration="160" />
</animation-list>
在。java中
AnimationDrawable mLoadingAnim;
ImageView animView = (ImageView) findViewById(R.id.loading_anim);
animView.setBackgroundResource(R.drawable.card_loading_anim);
mLoadingAnim = (AnimationDrawable) animView.getBackground();
mLoadingAnim.setOneShot(false); //设置多次播放
mLoadingAnim.start();
(二)TweenAnimation
简单来说就是通过计算机对图形进行变换。anroid中提供的4种图像变换,分别是scale(尺寸放大缩小)、alpha(透明度变换)、translate(位置变换)、rotate(旋转变换)
在res/anim中,定义图像的变化
<?xml version="1.0" encoding="utf-8"?>
<set android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400"/>
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
</set>
在.java中
Animation anim;
anim = AnimationUtils.loadAnimation(this, R.anim.go);
ImageView animView = (ImageView) findViewById(R.id.loading_anim);
animView.startAnimation(anim);
scale、rotate、translate、alpha在xml中有许多的属性,有兴趣的同学可以在developer查看文档或是在点击以下连接进行了一些总结
http://liaobingyun.blog.163.com/blog/static/12981211120099975217653/
Animation类中提供了很多的接口,方便实现一些功能:本人常用到的三个接口,故名思议
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stubd
}
在TweenAnimation中可以抛开xml文件直接在。java中进行定义(当然FrameAnimation也可以)
AnimationSet animSet = new AnimationSet(false);
Animation anim1 = new AlphaAnimation(1,0);
Animation anim2 = new RotateAnimation(0,360,30,30);
anim1.setDuration(400);
anim2.setDuration(400);
animSet.addAnimation(anim1);
animSet.addAnimation(anim2);
view.setAnimation(animSet);
animSet.startNow();
这里要注意AnimationSet中的动画是同时播放的,android没有提供连续播放的接口.可以通过设置startOffset来解决这一问题.
anim2.setStartOffset(1000);
这样anim2的动画效果将在anim1播放1000m之后播放
最后在加载动画的通常画面不动。由于android的原因,在onCreate中播放 anim.start() 是无效的,需要通过handleMessage的方式或是通过listener触发事件之后在加载
方式一:
Button btn =(Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
showAnimation();
}
});
方式二:
myHandler handler = new myHandler ();
handler.sendEmptyMessage(1);
private class AnimationHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW_CARD_ANIMATION:{
handler.postDelayed(new Runnable() {
@Override
public void run() {
showCardAnim();
}
}, 0);
break;
}
}
}
}
排版麻烦死了~~~~~~~~~~~~
分享到:
相关推荐
在"AnimationOne"中,可能还包含了对其他动画效果的探索,例如平移动画(` TranslateAnimation `),缩放动画(` ScaleAnimation `)等,这些都可以通过类似的步骤创建和应用。 除了视图动画,属性动画在Android 3.0及...
技术运维-机房巡检表及巡检说明
第四次算法分析与设计整理
图像处理项目实战
该资源为jaxlib-0.4.18-cp311-cp311-macosx_11_0_arm64.whl,欢迎下载使用哦!
搭建说明. 运行环境 php5.6 mysql5.6 扩展sg11 前置条件: 前后端分离,需要准备两个域名,一个后台域名,一个前端域名 后端源码修改(cs2.ijiuwu.com批量替换改为你的后端域名)数据库修改(cs3.ijiuwu.com批量替换为你的前端域名)1、创建后台站点,上传后台源码并解压到根目录2、创建前端站点,上传前端源码并解压到根目录 3、创建数据库上传并导入数据库文件 4、修改数据库信息: 后台:app/database.php 前端:application/database.php 前端站点设置 伪静态thinkphp 运行目录public 关闭防跨站 访问后台域名/admin.php进入后台管理 admin 123456 系统-》系统设置-》附件设置-》Web服务器URL 改为你的前端域名 系统-》清前台缓存 改为你的前端域名 点击刷新缓存
【毕业答辩】爆款黑板风教育文艺毕业论文答辩通用模板.pptx
1、文件内容:systemd-devel-219-78.el7_9.9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/systemd-devel-219-78.el7_9.9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
win32汇编环境,对 WM-MOUSEMOVE 消息的理解
车牌识别项目
UE项目开发过程中的一些快捷脚本
lab1的words.txt文件
python、yolo、pytorch
人工智能、大语言模型相关学习资料
图像处理项目实战
python、yolo、pytorch
车牌识别项目
该资源为jaxlib-0.4.18-cp312-cp312-macosx_10_14_x86_64.whl,欢迎下载使用哦!
python、yolo、pytorch
Swift-IOS TODO_List应用开发