android ResideMenu使用

52 篇文章 0 订阅
7 篇文章 0 订阅

   QQ5.0出来时就对其中的一个特效十分的好奇,就是一个类似SlidingMenu的可伸缩菜单,于是就上网搜了一下这个效果,果然在github上已经有大神模仿这个效果了,整个开源项目使用起来还是十分简单易掌握的,下面来看一下效果图,这是正常状态下的首页:


这是弹出伸缩菜单的效果:

虽然还不像QQ的那个功能强大,但是已经非常的不错了.下面贴出Demo代码:



import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;

import com.special.ResideMenu.ResideMenu;
import com.special.ResideMenu.ResideMenuItem;

public class MyResideMenuActivity extends FragmentActivity implements
		OnClickListener {

	private ResideMenu resideMenu;
	private MyResideMenuActivity mContext;
	private ResideMenuItem itemHome;

	@Override
	protected void onCreate(Bundle arg0) {
		// TODO Auto-generated method stub
		super.onCreate(arg0);
		setContentView(R.layout.main);
		mContext = this;
		
                setUpMenu();
		changeFragment(new HomeFragment());
	}

	private void changeFragment(Fragment fragment) {
		// TODO Auto-generated method stub
		resideMenu.clearIgnoredViewList();
		getSupportFragmentManager().beginTransaction()
				.replace(R.id.main_fragment, fragment, "fragment")
				.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
				.commit();
	}

        //初始化ResideMenu
	private void setUpMenu() {

		resideMenu = new ResideMenu(this);
		resideMenu.setBackground(R.drawable.menu_background);
		// 将 ResideMenu绑定到Activity上去
		resideMenu.attachToActivity(this);
                //设置缩放比例
                resideMenu.setScaleValue(0.6f);
                //设置为右侧菜单
                resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
		itemHome = new ResideMenuItem(this);
		resideMenu.addMenuItem(itemHome, ResideMenu.DIRECTION_LEFT);
		itemHome.setOnClickListener(this);
	}

	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		// TODO Auto-generated method stub
		return resideMenu.dispatchTouchEvent(ev);
	}

	/**
	 * item点击事件处理
	 */
	@Override
	public void onClick(View v) {

		if (v == itemHome) {
			changeFragment(new HomeFragment());
		}
		resideMenu.closeMenu();
	}

	// What good method is to access resideMenu锛�
	public ResideMenu getResideMenu() {
		return resideMenu;
	}
}

整个项目的使用是非常简单的,项目源码还是很值得去深入学习的...


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值