利用Android中自带的动画效果来实现弹力伸缩式菜单,默认情况下,菜单项为隐藏状态,当点击某一图标,打开菜单项,则通过一系列动画效果实现菜单项的展示;当再次点击该图标时,关闭菜单项,则通过一系列动画实现菜单项的隐藏。效果图如下:
实现原理:
利用Android设置动画的同时,并使用插入器(interpolator)来实现弹力
OvershootInterpolator插入器,表示向前甩出一定值后再回到之前的位置
AnticipateOvershootInterpolator插入器,表示开始的时候向后,然后向前甩
1、自定义相对布局I114gBoxRelativeLayout类,源码如下:
package com.i114gbox.sdk.ui;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Animation;
import android.widget.RelativeLayout;
import com.i114gbox.sdk.animation.I114gBoxZoomAnimation;
import com.i114gbox.sdk.utils.I114gBoxLogUtils;
/**
* 自定义相对布局
*
* @author shenjichao@vivagame.cn
*
*/
public class I114gBoxRelativeLayout extends RelativeLayout {
private static String TAG = "I114gBoxRelativeLayout";
private Animation mAnimation;// 动画对象
public I114gBoxRelativeLayout(Context ctx) {
super(ctx);
}
public I114gBoxRelativeLayout(Context ctx, AttributeSet att