Android快速SDK(17)左右滑动菜单SlidingMenu【傻瓜模式】

来源:互联网 发布:软件开发视频大讲堂 编辑:程序博客网 时间:2024/05/16 17:55

代码:http://download.csdn.net/detail/huangbin95487710/9260337

依赖包模式

完整运行还需要用到以下依赖包
  • Android快速SDK(22)友盟升级统计库UmengUpdate【肌肉记忆,分钟接入】
  • Android快速SDK(2)View库QuickView
  • Android快速SDK(4)对话框AlertDialog

基于github中SlidingMenu库升级封装成傻瓜模式

  1. 新特性配置支持
    • 配置滑动方式
    • 配置左右视图%比
    • 配置背景颜色,透明度,渐变颜色
    • 配置滑动速度
    • 配置退出模式
    • 默认样式
    •     <!-- 默认样式 -->    <style name="DivSlidingMenu">        <item name="mode">left_right</item>        <!-- 左视图的宽度百分比或千分比 -->        <item name="leftWidth">70</item>        <!-- 右边视图的宽度百分比或千分比 -->        <item name="rightWidth">50</item>        <!-- 滑出视图方式 -->        <item name="touchModeAbove">none</item>        <!-- 主视图方式 -->        <item name="touchModeBehind">margin</item>        <!-- 阴影的图片 -->        <item name="shadowDrawable">@drawable/sliding_shadow</item>        <!-- 右边阴影的图片 -->        <item name="shadowRightDrawable">@android:color/transparent</item>        <!-- 阴影宽度 -->        <item name="shadowWidth">15dp</item>        <!-- 渐变开启 -->        <item name="fadeEnabled">true</item>        <!-- 渐变深度 -->        <item name="fadeDegree">0.35</item>        <!-- 背景颜色 -->        <item name="slidingbackground">@color/sliding_menu_frame_color</item>        <!-- 返回按键退出 -->        <item name="keyback_quit">true</item>        <!-- 滑动速度 -->        <item name="duration">400</item>        <!-- false 平均页面,true 覆盖页面 -->        <item name="enableslide">false</item>    </style>

  2. 示例代码
    • 布局
    • <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/ll"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"    android:padding="15dip" >    <Button        android:id="@+id/btn_default"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="默认样式" />    <Button        android:id="@+id/index"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="下标选中" />    <Button        android:id="@+id/div"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="自定义样式" />    <Button        android:id="@+id/left"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="只有左边菜单" />    <Button        android:id="@+id/btn_null"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="没有左右菜单" />    <Button        android:id="@+id/right"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="15dip"        android:text="只有右边菜单" /></LinearLayout>
    • 代码
    • 启动入口SlidingAllActivity.java
    • package cn.whonow.whonow.sliding;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import cn.whonow.whonow.R;/** * sliding菜单全集 *  * @author HuangYi QQ:95487710 */public class SlidingAllActivity extends Activity {private Context mContext;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_sliding);this.mContext = this;Button button1 = (Button) findViewById(R.id.btn_default);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 默认样式SlidingActivity.startSliding(mContext, SlidingActivity.class);}});Button button2 = (Button) findViewById(R.id.index);button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 下标选中SlidingActivity.startSliding(mContext, SlidingActivity.class, 2);}});Button button3 = (Button) findViewById(R.id.div);button3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 自定义样式SlidingActivity.startSliding(mContext, SlidingActivity.class,0, R.style.MyDivSlidingMenu);}});Button button4 = (Button) findViewById(R.id.left);button4.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 只有左边菜单SlidingActivity.startSliding(mContext, SlidingLeftActivity.class);}});Button button5 = (Button) findViewById(R.id.btn_null);button5.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 没有左右菜单SlidingActivity.startSliding(mContext, SlidingNullActivity.class);}});Button button6 = (Button) findViewById(R.id.right);button6.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 只有右菜单SlidingActivity.startSliding(mContext, SlidingRightActivity.class);}});}}

    • 主视图SlidingActivity.java
    • package cn.whonow.whonow.sliding;import General.Listener.NavListener;import General.View.SlidingMenu.Act.FragmentBase;import General.View.SlidingMenu.Act.SlidingFragment;import General.View.SlidingMenu.Listener.SlidingTitleListener;import android.app.LocalActivityManager;import android.support.v4.app.Fragment;import cn.whonow.whonow.R;public class SlidingActivity extends SlidingFragment {private InviteFragment mInviteFragment;@Overridepublic FragmentBase getContentFragment(SlidingFragment context,LocalActivityManager lam) {// TODO Auto-generated method stubif (mInviteFragment == null)mInviteFragment = new InviteFragment();return mInviteFragment;}@Overridepublic Fragment getLeftFragment(SlidingFragment context) {// TODO Auto-generated method stubreturn new LeftFragment(this);}@Overridepublic Fragment getRightFragment(SlidingFragment context) {// TODO Auto-generated method stubreturn new RightFragment(this);}public class InviteFragment extends FragmentBase {public InviteFragment() {super();}/** * 传入界面值 */@Overridepublic void initFuntion() {super.setLayoutId(R.layout.test_tabpager_triangle);// super.setNavId(FunctionButton.INDEX_INVITE);// super.setTitleId(R.string.app_name);super.setPagerDefault(mDefaultIndex);}/** * 数字初始化 */public void initValue() {if (mFragmentItemList.size() > 0)return;TabPagerItem mPagerItem1 = new TabPagerItem("测试1");TabPagerItem mPagerItem2 = new TabPagerItem("测试2");TabPagerItem mPagerItem3 = new TabPagerItem("测试3");mFragmentItemList.add(mPagerItem1);//mFragmentItemList.add(mPagerItem2);//mFragmentItemList.add(mPagerItem3);//TabPagerItem mPagerItem4 = new TabPagerItem("测试4");//TabPagerItem mPagerItem5 = new TabPagerItem("测试5");//mFragmentItemList.add(mPagerItem4);//mFragmentItemList.add(mPagerItem5);}@Overridepublic NavListener getNavListener() {// TODO Auto-generated method stubreturn null;}@Overridepublic SlidingTitleListener getSlidingTitleListener() {// TODO Auto-generated method stubreturn null;}@Overridepublic boolean isCheckLog() {// TODO Auto-generated method stubreturn true;}}@Overridepublic boolean isCheckUpdate() {// TODO Auto-generated method stubreturn false;}@Overridepublic Class<?> getActName() {// TODO Auto-generated method stubreturn SlidingActivity.class;}@Overridepublic boolean isCheckLog() {// TODO Auto-generated method stubreturn false;}}

    • 左边视图
    • package cn.whonow.whonow.sliding;import General.System.MyLog;import General.Umeng.Update.UmengFragmentPager;import General.View.SlidingMenu.Act.SlidingFragment;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import cn.whonow.whonow.R;public class LeftFragment extends UmengFragmentPager {public View mView;public SlidingFragment context;public LeftFragment(SlidingFragment context) {this.context = context;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {if (null == mView) {mView = inflater.inflate(R.layout.test_tabpager_item, container,false);mView.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubMyLog.show(context, "onClick");}});}return mView;}public void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}@Overridepublic String getPagerName() {// TODO Auto-generated method stubreturn null;}@Overridepublic boolean isCheckLog() {// TODO Auto-generated method stubreturn false;}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stub}}

    • 右边视图
    • package cn.whonow.whonow.sliding;import General.System.MyLog;import General.Umeng.Update.UmengFragmentPager;import General.View.SlidingMenu.Act.SlidingFragment;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import cn.whonow.whonow.R;public class RightFragment extends UmengFragmentPager {public View mView;public SlidingFragment context;public RightFragment(SlidingFragment context) {this.context = context;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {if (null == mView) {mView = inflater.inflate(R.layout.test_tabpager_item, container,false);mView.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubMyLog.show(context, "onClick");}});}return mView;}public void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}@Overridepublic String getPagerName() {// TODO Auto-generated method stubreturn null;}@Overridepublic boolean isCheckLog() {// TODO Auto-generated method stubreturn false;}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stub}}

  3. 效果图

1 0
原创粉丝点击