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及...
1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143720369 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
CPPC++_更好的Windows字体渲染
10018
cppc++
二环北路东段欣心家园小区商业B段(中石油加油站东邻).m4a
cppc++
C2005
Python课程设计之高校教务系统
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
10023
使用QUndoStack撤销栈实现QTreeWidget删除item及撤销、重做
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
Python课程设计之飞机大战3.zip
SpringBoot分布式事务
CPPC++_tensorort for yolo系列YOLOv10YOLOv9YOLOv8YOLOv7YOLOv6Y
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
收录了「IT无知君」CSDN博客中涉及的Java项目源码,还有许多的开发工具类,都是我自己在用在不断维护的,需要请进!
CPPC++_更新你的CFW作弊码固件,更直接地从你的任天堂交换机