仿微信开门设计

仿微信开门设计_第1张图片 仿微信开门设计_第2张图片 仿微信开门设计_第3张图片好了,,先带你进入程序吧
首先创建一个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

你可能感兴趣的:(仿微信开门设计)