码迷,mamicode.com
首页 > 移动开发 > 详细

android用最简单的方法实现QQ5.0的侧边栏滑动效果

时间:2015-01-13 16:10:04      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:android仿qq5.0   android滑动侧边栏   android   android滑动   android侧边栏   

先看个效果

技术分享


使用两个开源项目

开源侧边栏 :me.tangke.slidemenu 

开源动画:nineoldandroids-2.4.0.jar

在项目里我使用的是左边activity,右边activity的样式,activityGroup的方式,如果全用Fragment也是一样的,只要获取Fragment的rootView即可;

滑动时用me.tangke.slidemenu是为获取拖动屏幕的比例,其他的菜单栏也可以使用,只是加个动画;


界面所有逻辑代码不动,使用nineoldandroids为菜单栏添加类似QQ5.0的侧边栏滑动效果的动画;


获取侧边栏滑动比例,我用的这个菜单栏,出现侧边栏到菜单栏消失,比例为0.000.. -> 1.000..,所以在其滑动过程中添加个动画,一切OK;

主要代码如下:

	mSlideMenu.setOnSlideStateChangeListener(new OnSlideStateChangeListener() {
			
			@Override
			public void onSlideStateChange(int slideState) {
				switch (slideState) {
				default:
				case SlideMenu.STATE_CLOSE:
					isMenuShowing=false;
					break;
				case SlideMenu.STATE_OPEN_LEFT:
				case SlideMenu.STATE_OPEN_RIGHT:
					isMenuShowing=true;//here drag
					break;
				case SlideMenu.STATE_DRAG:
					break;
				case SlideMenu.STATE_SCROLL:
					break;
				}
			}
			
			@Override
			public void onSlideOffsetChange(float offsetPercent) {
				//添加动画效果
				ViewHelper.setAlpha(mSlideMenuView, 0.7f + 0.3f * offsetPercent);
				ViewHelper.setScaleX(mSlideMenuView, offsetPercent*0.1f+0.9f);
				ViewHelper.setScaleY(mSlideMenuView, offsetPercent*0.1f+0.9f);
				ViewHelper.setTranslationX(mSlideMenuView, -(1-offsetPercent)*100);

				ViewHelper.setPivotX(mSlideContentView, 0);
				ViewHelper.setScaleX(mSlideContentView, 0.5f - offsetPercent*0.3f+0.5f);
				ViewHelper.setPivotY(mSlideContentView, mSlideContentView.getHeight()/2.0f);
				ViewHelper.setScaleY(mSlideContentView, 0.5f - offsetPercent*0.3f+0.5f);
			}
		});

主界面布局:

我这里是随便加的一个灰色的作为背景

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:slidemenu="http://schemas.android.com/apk/res-auto"
    android:id="@+id/root_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/text_gray_lite" >

    <me.tangke.slidemenu.SlideMenu
        android:id="@+id/slideMenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

有很多侧边栏的源码是在OnMeasure里面和 onScroll 里面去做,效果都差不多,项目毕竟稳定了,在原有代码上加个小外壳,不破坏原有逻辑,这样比较保险一点,当然了也很省事..;


android用最简单的方法实现QQ5.0的侧边栏滑动效果

标签:android仿qq5.0   android滑动侧边栏   android   android滑动   android侧边栏   

原文地址:http://blog.csdn.net/intbird/article/details/42675933

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!