Android特效第四篇:Android抽屉实现

来源:互联网 发布:淘宝上cf刷枪是真的吗 编辑:程序博客网 时间:2024/05/15 07:35
Android抽屉,对用户的体验是非常好的。第一次见到Android抽屉是在51job的Android客户端,最近我在微信上也看到这样一个效果,今天花了点时间写了一个Android抽屉测试与大家分享。

      先贴效果图:

                                

   代码:

[java] view plaincopyprint?
  1. package com.jefry.activity;  
  2.   
  3. import com.jefry.service.MyAdapter;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.widget.GridView;  
  8. import android.widget.ImageView;  
  9. import android.widget.SlidingDrawer;  
  10. public class SlidingdrawerActivity extends Activity {  
  11.        
  12.       private GridView gridview;  
  13.       private SlidingDrawer slidingdrawer;  
  14.       private ImageView imageview;  
  15.       private int[] icons={R.drawable.main1,R.drawable.main2,  
  16.                             R.drawable.main3,R.drawable.main4,  
  17.                             R.drawable.main5,R.drawable.main6,  
  18.                             R.drawable.main7,R.drawable.main8,R.drawable.main9};  
  19.       private String[] items={"jefry1","jefry2","jefry3","jefry4","jefry5","jefry6","jefry7","jefry8","jefry9"};  
  20.            
  21.         /** Called when the activity is first created. */  
  22.         @Override  
  23.         public void onCreate(Bundle savedInstanceState) {  
  24.             super.onCreate(savedInstanceState);  
  25.             setContentView(R.layout.main);  
  26.             gridview = (GridView)findViewById(R.id.gridview);   
  27.             slidingdrawer = (SlidingDrawer)findViewById(R.id.sd);  
  28.             imageview=(ImageView)findViewById(R.id.imageview);  
  29.             MyAdapter adapter=new MyAdapter(this,items,icons);  
  30.             gridview.setAdapter(adapter);  
  31.             slidingdrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()  
  32.             {  
  33.                
  34.               public void onDrawerOpened()  
  35.               {  
  36.                   imageview.setImageResource(R.drawable.draw_down);  
  37.               }  
  38.             });  
  39.             slidingdrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener()  
  40.             {  
  41.              
  42.               public void onDrawerClosed()  
  43.               {  
  44.                   imageview.setImageResource(R.drawable.draw_up);  
  45.               }  
  46.             });  
  47.         }  
  48.     }  
[java] view plaincopyprint?
  1. package com.jefry.service;  
  2.   
  3. import com.jefry.activity.R;  
  4.   
  5. import android.content.Context;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.BaseAdapter;  
  10. import android.widget.ImageView;  
  11. import android.widget.TextView;  
  12.   
  13. public class MyAdapter extends BaseAdapter   
  14. {   
  15.   private Context context;  
  16.   private String[] items;  
  17.   private int[] icons;  
  18.   
  19.   public MyAdapter(Context context,String[] items,int[] icons)   
  20.   {  
  21.     this.context=context;  
  22.     this.items=items;  
  23.     this.icons=icons;  
  24.   }  
  25.   
  26.   
  27.   public int getCount()  
  28.   {  
  29.     return items.length;  
  30.   }  
  31.   
  32.   
  33.   public Object getItem(int arg0)  
  34.   {  
  35.     return items[arg0];  
  36.   }  
  37.   
  38.   public long getItemId(int position)  
  39.   {  
  40.     return position;  
  41.   }  
  42.   
  43.   
  44.   public View getView(int position, View convertView, ViewGroup parent)  
  45.   {  
  46.     LayoutInflater factory = LayoutInflater.from(context);  
  47.     View v = (View) factory.inflate(R.layout.item, null);//绑定自定义的layout  
  48.     ImageView iv = (ImageView) v.findViewById(R.id.icon);  
  49.     TextView tv = (TextView) v.findViewById(R.id.text);  
  50.     iv.setImageResource(icons[position]);  
  51.     tv.setText(items[position]);  
  52.     return v;  
  53.   }  
  54.   
  55.    
  56. }  

源码下载:http://download.csdn.net/detail/jefry_xdz/4525477