Android特效第四篇:Android抽屉实现
16lz
2021-12-04
Android抽屉,对用户的体验是非常好的。第一次见到Android抽屉是在51job的Android客户端,最近我在微信上也看到这样一个效果,今天花了点时间写了一个Android抽屉测试与大家分享。
先贴效果图:
代码:
[java] view plain copy print ?- packagecom.jefry.activity;
- importcom.jefry.service.MyAdapter;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.GridView;
- importandroid.widget.ImageView;
- importandroid.widget.SlidingDrawer;
- publicclassSlidingdrawerActivityextendsActivity{
- privateGridViewgridview;
- privateSlidingDrawerslidingdrawer;
- privateImageViewimageview;
- privateint[]icons={R.drawable.main1,R.drawable.main2,
- R.drawable.main3,R.drawable.main4,
- R.drawable.main5,R.drawable.main6,
- R.drawable.main7,R.drawable.main8,R.drawable.main9};
- privateString[]items={"jefry1","jefry2","jefry3","jefry4","jefry5","jefry6","jefry7","jefry8","jefry9"};
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- gridview=(GridView)findViewById(R.id.gridview);
- slidingdrawer=(SlidingDrawer)findViewById(R.id.sd);
- imageview=(ImageView)findViewById(R.id.imageview);
- MyAdapteradapter=newMyAdapter(this,items,icons);
- gridview.setAdapter(adapter);
- slidingdrawer.setOnDrawerOpenListener(newSlidingDrawer.OnDrawerOpenListener()
- {
- publicvoidonDrawerOpened()
- {
- imageview.setImageResource(R.drawable.draw_down);
- }
- });
- slidingdrawer.setOnDrawerCloseListener(newSlidingDrawer.OnDrawerCloseListener()
- {
- publicvoidonDrawerClosed()
- {
- imageview.setImageResource(R.drawable.draw_up);
- }
- });
- }
- }
package com.jefry.activity;import com.jefry.service.MyAdapter;import android.app.Activity;import android.os.Bundle;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;public class SlidingdrawerActivity extends Activity { private GridView gridview; private SlidingDrawer slidingdrawer; private ImageView imageview; private int[] icons={R.drawable.main1,R.drawable.main2, R.drawable.main3,R.drawable.main4, R.drawable.main5,R.drawable.main6, R.drawable.main7,R.drawable.main8,R.drawable.main9}; private String[] items={"jefry1","jefry2","jefry3","jefry4","jefry5","jefry6","jefry7","jefry8","jefry9"}; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gridview = (GridView)findViewById(R.id.gridview); slidingdrawer = (SlidingDrawer)findViewById(R.id.sd); imageview=(ImageView)findViewById(R.id.imageview); MyAdapter adapter=new MyAdapter(this,items,icons); gridview.setAdapter(adapter); slidingdrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() { public void onDrawerOpened() { imageview.setImageResource(R.drawable.draw_down); } }); slidingdrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() { public void onDrawerClosed() { imageview.setImageResource(R.drawable.draw_up); } }); }}[java] view plain copy print ?
- packagecom.jefry.service;
- importcom.jefry.activity.R;
- importandroid.content.Context;
- importandroid.view.LayoutInflater;
- importandroid.view.View;
- importandroid.view.ViewGroup;
- importandroid.widget.BaseAdapter;
- importandroid.widget.ImageView;
- importandroid.widget.TextView;
- publicclassMyAdapterextendsBaseAdapter
- {
- privateContextcontext;
- privateString[]items;
- privateint[]icons;
- publicMyAdapter(Contextcontext,String[]items,int[]icons)
- {
- this.context=context;
- this.items=items;
- this.icons=icons;
- }
- publicintgetCount()
- {
- returnitems.length;
- }
- publicObjectgetItem(intarg0)
- {
- returnitems[arg0];
- }
- publiclonggetItemId(intposition)
- {
- returnposition;
- }
- publicViewgetView(intposition,ViewconvertView,ViewGroupparent)
- {
- LayoutInflaterfactory=LayoutInflater.from(context);
- Viewv=(View)factory.inflate(R.layout.item,null);//绑定自定义的layout
- ImageViewiv=(ImageView)v.findViewById(R.id.icon);
- TextViewtv=(TextView)v.findViewById(R.id.text);
- iv.setImageResource(icons[position]);
- tv.setText(items[position]);
- returnv;
- }
- }
package com.jefry.service;import com.jefry.activity.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyAdapter extends BaseAdapter { private Context context; private String[] items; private int[] icons; public MyAdapter(Context context,String[] items,int[] icons) { this.context=context; this.items=items; this.icons=icons; } public int getCount() { return items.length; } public Object getItem(int arg0) { return items[arg0]; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater factory = LayoutInflater.from(context); View v = (View) factory.inflate(R.layout.item, null);//绑定自定义的layout ImageView iv = (ImageView) v.findViewById(R.id.icon); TextView tv = (TextView) v.findViewById(R.id.text); iv.setImageResource(icons[position]); tv.setText(items[position]); return v; } }
源码下载:http://download.csdn.net/detail/jefry_xdz/4525477
更多相关文章
- C#开发Android手机应用全接触(mono for android)
- Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同
- Android(安卓)系统完整的权限列表
- Android(安卓)RadioGroup RadioButton 自定义样式------按钮式
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
- Android开发学习之Gallery和GridView浅析
- Android(安卓)- 约束布局实现一个简单的登陆界面
- Android(安卓)抽屉导航
- 安卓基本常用控件: View