好了,,先带你进入程序吧
首先创建一个anim的文件,名字不能改这个不解释了哈,它的功能主要是存放一些动画文件
然后配置xml文件文件名字自定义
<?xml version="1.0" encoding="UTF-8"?>
<!-- 在Android动画, fillBefore是指动画结束时画面停留在第一帧,fillAfter是指动画结束是画面停留在最后一帧。 -->
<set android:fillAfter="false"
xmlns:android=" http://schemas.android.com/apk/res/android">
<translate
android:duration="2000"
android:fromXDelta="0.0"
android:toXDelta="-50.0%p"
android:fromYDelta="0.0"
android:toYDelta="0.0" />
</set>
<!-- Android的animation由四种类型组成
XML中
alpha渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果 ****我们主要用到这个属性
**********
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
fromYDelta 属性为动画起始时 Y坐标上的位置
toYDelta 属性为动画结束时 Y坐标上的位置
***********************************************
rotate画面转移旋转动画效果 -->
这是左边开门的xml配置注释够清楚嘛???
随便再解释一下 android:toXDelta="-50.0%p" 这句话可能好多人看的迷茫了
android:toXDelta="100%",
表示自身的
100%,
也就是从
View
自己的位置开始。
android:toXDelta="80%p",
表示父层
View
的
80%,
是以它父层
View
为参照的。
android:toXDelta="-50.0%p" 表示以父类的50%为参照向左消失
右边开门原理同上,只稍作修改!详见代码,不在详述
xml配置好了怎么调用呢?
接下来接着讲】
Animation leftOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_left);得到Animation动画
Animation rightOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);
leftLayout.setAnimation(leftOutAnimation);//加载Animation动画
rightLayout.setAnimation(rightOutAnimation);
leftOutAnimation.setAnimationListener(new AnimationListener(){//绑定一个动画侦听器,动画侦听器是通知动画等事件结束的动画或重复的动画。
@Override//只要setAnimationListener()绑定,以下的三个方法eclipse会提示添加的
public void onAnimationEnd(Animation animation) {
leftLayout.setVisibility(View.GONE);
rightLayout.setVisibility(View.GONE);
Intent intent = new Intent(Openthedoor.this,OtherActivity.class);
startActivity(intent);
finish();
}
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationStart(Animation animation) {
mainRLayout.setBackgroundColor(R.drawable.shan6);
}});
好了结束了,源码相对简单,只用了 65 行!!!
好了就解释到这里,其他的参见“ 猿 ”码openthedoor.rar