安卓左侧抽屉+带图标自定义菜单内容

 

达到下面效果:
[img]


 
[/img]

使用android.support.v4.widget.DrawerLayout默认效果如下:


 

略显单调,如果能通过图标与文字的方式,就好看很多,通过创建自定义适配器,达到图标和文字在左侧显示菜单效果。
创建布局文件

<?xml version="1.0" encoding="utf-8"?> 
<!--左侧导航每一行布局--> 
<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <ImageView 
  android:id="@+id/MainActivityImage" 
  android:layout_width="50dp" 
  android:layout_height="50dp" 
  android:layout_gravity="center_horizontal" 
  /> 
 <TextView 
  android:id="@+id/MainActivityText" 
  android:layout_width="100dp" 
  android:layout_height="fill_parent" 
  android:layout_gravity="center_horizontal" 
   android:gravity="center"
  /> 
</LinearLayout> 

 自定义适配器:

package com.hx.adapter;

import com.hx.activity.R;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;


/**
 * 
 * @author hx
 * 左侧导航适配器
 *
 */
public class MenuAdapter extends BaseAdapter{
	private Context context;  
	   
	 public MenuAdapter(Context context) {  
	  this.context=context;  
	 }  
	 public void ChangeImg(int index,Integer dreawble)
	 {
		 images[index] = dreawble;
	 }
	 private Integer[] images = {  
			 	R.drawable.m_eidmng,
			 	R.drawable.m_exit
			      };
	 
			   
	 private String[] texts = {  
			   //左侧导航文字
			   "告警管理",  
			   "提交告警"
			   }; 
	 
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return images.length;  
	}

	@Override  
	 public Object getItem(int position) {  
	  return position;  
	 }  
	 
	 //get the current selector's id number  
	 @Override  
	 public long getItemId(int position) {  
	  return position;  
	 }  

	 @Override  
	 public View getView(int position, View view, ViewGroup viewgroup) {  
		  ImgTextWrapper wrapper;  
		  if(view==null) {  
		   wrapper = new ImgTextWrapper();  
		   LayoutInflater inflater = LayoutInflater.from(context);  
		   view = inflater.inflate(R.layout.hx_m_item, null);  
		   view.setTag(wrapper);  
		   view.setPadding(15, 15, 15, 15);  //每格的间距  
		  } else {  
		   wrapper = (ImgTextWrapper)view.getTag();  
		  }  
	    
		  wrapper.imageView = (ImageView)view.findViewById(R.id.MainActivityImage);  
		  wrapper.imageView.setBackgroundResource(images[position]);  
		  wrapper.textView = (TextView)view.findViewById(R.id.MainActivityText);  
		  wrapper.textView.setTextColor(Color.WHITE);
		  wrapper.textView.setText(texts[position]);  
		    
		  return view;  
	 }  
}
 

在主activity里面添加适配器:

 //设置打开抽屉列表,并添加监听
        mMenuAdapter = new MenuAdapter(this);
        
        mDrawerList.setAdapter(mMenuAdapter);

猜你喜欢

转载自huxu1986-163-com.iteye.com/blog/2158225