zoukankan      html  css  js  c++  java
  • Android开源项目SlidingMenu的学习笔记(一)

    SlidingMenu是眼下在应用程序上非常流行的一种UI技术。能够实现一种比較炫的滑动效果,SlidingMenu是Git上托管的一个项目,开源免费的。SlidingMenu作为一个Library的形式导入到须要的project。兴许可能会以不同的方式实现SlidingMenu;用户能够到下面地址下载。


    SlidingMenu的Git项目托管地址:https://github.com/jfeinstein10/SlidingMenu

    Demo文件夹结构:




    关键代码:

    MainActivity.java

    package com.dzt.slidingmenudemo;
    
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    
    import com.slidingmenu.lib.SlidingMenu;
    
    public class MainActivity extends FragmentActivity {
    
    	private SlidingMenu mChannelMenu;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		// 设置标题栏的标题
    		setTitle("測试SlidingMenu");
    		setContentView(R.layout.main_activity);
    		initChannelMenu();
    	}
    
    	private void initChannelMenu() {
    
    		// 创建SlidingMenu对象
    		mChannelMenu = new SlidingMenu(this);
    		// 设置側滑栏菜单位置,这里在左边。拉动菜单时。会从左边弹出
    		mChannelMenu.setMode(SlidingMenu.LEFT);
    		// 设置触摸的范围,这里设置全屏
    		mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    		// 设置阴影的宽度,查看上面第二张效果图,靠右边的位置,有一个阴影过渡。就是这个东西
    		mChannelMenu.setShadowWidthRes(R.dimen.shadow_width);
    		// 这里是阴影效果。能够设置图片或者一个颜色过渡
    		mChannelMenu.setShadowDrawable(R.drawable.shadow);
    		// 设置后面间距,側滑栏和原来界面间距
    		mChannelMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    		// 边框的角度。这里指边界地方
    		mChannelMenu.setFadeDegree(0.35f);
    		// 设置触摸屏幕的模式
    		mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    		// 把側滑栏关联到当前的Activity
    		mChannelMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    		// 側滑栏的布局文件
    		mChannelMenu.setMenu(R.layout.channel_slide_menu);
    		getSupportFragmentManager().beginTransaction()
    				.replace(R.id.menu_frame, new MyListFragment()).commit();
    	}
    
    	@Override
    	public void onBackPressed() {
    		if (mChannelMenu.isMenuShowing()) {
    			// 隐藏SlidingMenu,这里的Content就是我们的主Activity
    			mChannelMenu.showContent();
    		} else {
    			super.onBackPressed();
    		}
    	}
    
    }
    
    MyListFragment.java

    package com.dzt.slidingmenudemo;
    
    import android.content.Context;
    import android.os.Bundle;
    import android.support.v4.app.ListFragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class MyListFragment extends ListFragment {
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		return inflater.inflate(R.layout.list, null);
    	}
    
    	public void onActivityCreated(Bundle savedInstanceState) {
    		super.onActivityCreated(savedInstanceState);
    		SampleAdapter adapter = new SampleAdapter(getActivity());
    		for (int i = 0; i < 20; i++) {
    			adapter.add(new SampleItem("左边是列表",
    					android.R.drawable.ic_menu_search));
    		}
    		setListAdapter(adapter);
    	}
    
    	private class SampleItem {
    		public String tag;
    		public int iconRes;
    
    		public SampleItem(String tag, int iconRes) {
    			this.tag = tag;
    			this.iconRes = iconRes;
    		}
    	}
    
    	public class SampleAdapter extends ArrayAdapter<SampleItem> {
    
    		public SampleAdapter(Context context) {
    			super(context, 0);
    		}
    
    		public View getView(int position, View convertView, ViewGroup parent) {
    			if (convertView == null) {
    				convertView = LayoutInflater.from(getContext()).inflate(
    						R.layout.item, null);
    			}
    			ImageView icon = (ImageView) convertView
    					.findViewById(R.id.row_icon);
    			icon.setImageResource(getItem(position).iconRes);
    			TextView title = (TextView) convertView
    					.findViewById(R.id.row_title);
    			title.setText(getItem(position).tag);
    
    			return convertView;
    		}
    
    	}
    }
    

    有一点须要注意。在使用的project中会默认生成:android-support-v4.jar。有可能跟SlidingMenu的有冲突。须要删除。否则会报错。

    演示样例代码:http://download.csdn.net/detail/deng0zhaotai/7856011
    最新的SlidingMenu能够到Git上去下载

  • 相关阅读:
    caffe源码整个训练过程
    设计模式--工厂模式 caffe_layer注册
    【Oracle】跟踪文件目录(User_Dump_Dest)生成脚本(11g/9i).txt
    【Oracle】修改参数的同时添加注释
    【Oracle】重置参数
    【Oracle】SCOPE=MEMORY|SPFILE|BOTH
    【Oracle】解锁用户
    【Oracle】开、关、删归档日志(archivelog)
    【Oracle】Rman简介
    【Oracle】非RMAN恢复数据文件、控制文件
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7147759.html
Copyright © 2011-2022 走看看