Android 动画
2015-06-19 14:57
417 查看
//变换动画 Tween Animation
Alpha 渐变透明度动画
Scale 渐变尺寸缩放动画
Translate 位置移动动画
Rotate 旋转动画
公共属性 :Duration 动画持续时间(单位:毫秒)
fillAfter 设置为True,动画转化在动画结束后被应用
fillBefore 设置为true, 动画转化在动画开始前被应用
interpolator 动画插入器(加速,减速插入器)
repeatCount 动画重复的次数
repeatMode 顺序重复/倒序重读
startOffset 动画之间的时间间隔
//透明度渐变特效
//大小渐变特效
XML文件
//位移动画特效
XML
//旋转动画特效
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="5000" //动画运行时间
android:fromDegrees="0" //旋转开始的角度
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"//中心点
android:pivotY="50%"//中心点
android:toDegrees="+360" //旋转结束的角度
/>
</set>
代码
Animation RotateAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
mImageView.startAnimation(RotateAnimation);
//组合动画 案例 动画A和动画B 先播放动画A 当动画A播放完毕后播放动画B
Animation TransAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.transtate);//动画A
mImageView.startAnimation(TransAnimation);
final Animation RotateAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);//动画B
TransAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO 自动生成的方法存根
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO 自动生成的方法存根
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO 自动生成的方法存根
mImageView.startAnimation(RotateAnimation);
}
});
//组合动画 使用startOffset 值
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="5000"
android:fromAlpha="0"
android:toAlpha="1" />
<alpha
android:duration="5000"
android:fromAlpha="1"
<span style="color:#FF6666;"> <span style="color:#FF0000;">android:startOffset="5000"</span></span>
android:toAlpha="0" />
<alpha
android:duration="5000"
android:fromAlpha="0"
<span style="color:#FF0000;"> android:startOffset="5000"</span>
android:toAlpha="1" />
</set>
//Activity切换动画 参数:第二个Activity进入时的动画 ,第一个Activity退出时的动画
XML zoomin.xml
zoomout.xml
//布局动画 Layout Animation ListView项显示动画
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
<scale
android:duration="500"
android:fillAfter="true"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:toXScale="1.0"
android:toYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
>
</scale>
</set>
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to);
ListView mListView=(ListView)findViewById(R.id.id_listView);
ArrayList<String> arrayList=new ArrayList<String>();
for (int i = 0; i < 20; i++) {
arrayList.add("小熊猫"+i);
}
ArrayAdapter<String> mAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arrayList);
mListView.setAdapter(mAdapter);
Animation RotateAnimation=AnimationUtils.loadAnimation(ToActivity.this, R.anim.layanimation);
LayoutAnimationController lac=new LayoutAnimationController(RotateAnimation);
lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
mListView.setLayoutAnimation(lac);
mListView.startLayoutAnimation();
}
Alpha 渐变透明度动画
Scale 渐变尺寸缩放动画
Translate 位置移动动画
Rotate 旋转动画
公共属性 :Duration 动画持续时间(单位:毫秒)
fillAfter 设置为True,动画转化在动画结束后被应用
fillBefore 设置为true, 动画转化在动画开始前被应用
interpolator 动画插入器(加速,减速插入器)
repeatCount 动画重复的次数
repeatMode 顺序重复/倒序重读
startOffset 动画之间的时间间隔
//透明度渐变特效
private TextView AnimationTXT; private Button BtnAnimation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AnimationTXT=(TextView) findViewById(R.id.id_AnimationTXT); BtnAnimation=(Button) findViewById(R.id.id_Btn); BtnAnimation.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //透明度渐变动画 Animation alpAnimation=new AlphaAnimation(0.1f, 1.0f);//构造函数创建透明度动画.参数:动画开始时透明度,动画结束时透明度 alpAnimation.setDuration(5000);//动画持续事件 毫秒 alpAnimation.setRepeatCount(10);//动画循环次数 AnimationTXT.startAnimation(alpAnimation);//启动动画 } }); }
//大小渐变特效
XML文件
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="5000" //动画持续时间 android:fillAfter="false" //动画结束后是否保留大小 android:fromXScale="0.0" //动画开始的X android:fromYScale="0.0" //动画开始的Y android:toXScale="1.0" //动画结束的X android:toYScale="1.0" //动画结束的Y android:interpolator="@android:anim/accelerate_decelerate_interpolator" //内置动画变速器 android:pivotX="50%" //动画的中心点X android:pivotY="50%" //动画的中心店Y > </scale> </set>代码
Animation scaleAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale); mImageView.startAnimation(scaleAnimation);
//位移动画特效
XML
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="5000" //动画过程时间 android:fromXDelta="0" //动画开始时X坐标 android:fromYDelta="0" //动画开始时Y坐标 android:toXDelta="100" //动画结束时X坐标 android:toYDelta="100" > //动画结束时Y坐标 </translate> </set>代码
Animation TransAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.transtate); mImageView.startAnimation(TransAnimation);
//旋转动画特效
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="5000" //动画运行时间
android:fromDegrees="0" //旋转开始的角度
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"//中心点
android:pivotY="50%"//中心点
android:toDegrees="+360" //旋转结束的角度
/>
</set>
代码
Animation RotateAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
mImageView.startAnimation(RotateAnimation);
//组合动画 案例 动画A和动画B 先播放动画A 当动画A播放完毕后播放动画B
Animation TransAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.transtate);//动画A
mImageView.startAnimation(TransAnimation);
final Animation RotateAnimation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);//动画B
TransAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO 自动生成的方法存根
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO 自动生成的方法存根
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO 自动生成的方法存根
mImageView.startAnimation(RotateAnimation);
}
});
//组合动画 使用startOffset 值
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="5000"
android:fromAlpha="0"
android:toAlpha="1" />
<alpha
android:duration="5000"
android:fromAlpha="1"
<span style="color:#FF6666;"> <span style="color:#FF0000;">android:startOffset="5000"</span></span>
android:toAlpha="0" />
<alpha
android:duration="5000"
android:fromAlpha="0"
<span style="color:#FF0000;"> android:startOffset="5000"</span>
android:toAlpha="1" />
</set>
//Activity切换动画 参数:第二个Activity进入时的动画 ,第一个Activity退出时的动画
XML zoomin.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="-300" android:toYDelta="0" > </translate> </set>
zoomout.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="1000" android:fromXDelta="300" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="0" > </translate> </set>代码
Intent intent=new Intent(MainActivity.this, ToActivity.class); startActivity(intent); <span style="color:#FF0000;">overridePendingTransition(R.anim.zoomout, R.anim.zoomin);</span>
//布局动画 Layout Animation ListView项显示动画
XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
<scale
android:duration="500"
android:fillAfter="true"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:toXScale="1.0"
android:toYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
>
</scale>
</set>
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to);
ListView mListView=(ListView)findViewById(R.id.id_listView);
ArrayList<String> arrayList=new ArrayList<String>();
for (int i = 0; i < 20; i++) {
arrayList.add("小熊猫"+i);
}
ArrayAdapter<String> mAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arrayList);
mListView.setAdapter(mAdapter);
Animation RotateAnimation=AnimationUtils.loadAnimation(ToActivity.this, R.anim.layanimation);
LayoutAnimationController lac=new LayoutAnimationController(RotateAnimation);
lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
mListView.setLayoutAnimation(lac);
mListView.startLayoutAnimation();
}
相关文章推荐
- Android Studio 常用功能介绍
- Android 有道词典的简单实现方法介绍
- IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置
- 【Android】四大组件+生命周期
- Android GPS学习笔记—JNI层实现
- android应用程序如何调用支付宝接口
- Android 百度地图2.4.2版本标注动画效果
- 一步步走进Android MaterialDesign
- android中ListView的Iterm无法点击
- Android Proguard returned with error code 1. See console 之注意事项
- 七海限时招募海盗,会写 Android 的海盗!
- 解决TextView强制换行
- android-进阶(3)-自定义view(1)
- Android Lollipop 新特性 - Palette
- Android Studio 初体验
- Android开发的十项注意
- Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)
- android动态布局方法总结
- Android软键盘相关的知识
- Android学习中返回键弹框提示或两次点击后退出