因为项目需要,自定义了一个通过手势滑动控制组件显示的FrameLayout布局。主要功能就是将各个组件放入此FrameLayout中,上层组件会覆盖下层组件,向左滑动上层组件,则该组件会启动一个translateAnimation动画从左边移出屏幕,同时被覆盖的下层组件会启动一个AlphaAnimation动画显示出来。再向右滑动,下层组建会隐藏,之前的上层组件会从左向右移入屏幕。
例如在该FrameLayout内放入一个textView显示文字和一个ImageView显示图片,向左滑动图片,则该imageView会从左边移出屏幕,同时被ImageView覆盖的textView会慢慢浮现出来,再向右滑动该textView,则textView会逐渐隐藏,而之前移出屏幕的ImageView会从左向右移动回原来的位置
先看效果图:
最开始的时候,imageView覆盖textView:
向左滑动图片,imageView开始向左平移,同时textView开始显现:
动画结束后,imageView移出了屏幕,textView显示:
示例代码如下:
首先是自定义FrameLayout类:
package com.example.myframelayout;
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.view.GestureDetector.OnGestureListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.vi