首页 > 系统 > Android > 正文

Android编程实现抽屉效果的方法示例

2019-12-12 02:36:59
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程实现抽屉效果的方法。分享给大家供大家参考,具体如下:

今天在手机上实现了抽屉效果,其实很简单,但是效果却很酷。

首先在layout 下设置xml布局文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent" >  <SlidingDrawer    android:id="@+id/sliding"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:content="@+id/allApps"    android:handle="@+id/imageViewIcon"    android:orientation="vertical" >    <GridView      android:id="@+id/allApps"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:background="@drawable/bk"      android:columnWidth="60dp"      android:gravity="center"      android:horizontalSpacing="10dp"      android:numColumns="auto_fit"      android:padding="10dp"      android:stretchMode="columnWidth"      android:verticalSpacing="10dp" />    <ImageView      android:id="@+id/imageViewIcon"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:src="@drawable/touch_handler" />  </SlidingDrawer></RelativeLayout>

SlidingDrawer就是重要的抽屉控件 ,handle是抽屉的拖动按钮,content是抽屉中的内容。

然后建立 chouti的activity类:

import android.app.Activity;import android.content.Intent;import android.content.pm.ResolveInfo;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;public class Chouti extends Activity {  private GridView gv;  private SlidingDrawer sd;  private ImageView iv;  private List<ResolveInfo> apps;  /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.slidingdrawer);    loadApps();    gv = (GridView) findViewById(R.id.allApps);    sd = (SlidingDrawer) findViewById(R.id.sliding);    iv = (ImageView) findViewById(R.id.imageViewIcon);    gv.setAdapter(new GridAdapter());    sd.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()// 开抽屉    {      @Override      public void onDrawerOpened() {        iv.setImageResource(R.drawable.touch_handler);// 响应开抽屉事件                                // ,把图片设为向下的      }    });    sd.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {      @Override      public void onDrawerClosed() {        iv.setImageResource(R.drawable.touch_handler);// 响应关抽屉事件      }    });  }  private void loadApps() {    Intent intent = new Intent(Intent.ACTION_MAIN, null);    intent.addCategory(Intent.CATEGORY_LAUNCHER);    apps = getPackageManager().queryIntentActivities(intent, 0);  }  public class GridAdapter extends BaseAdapter {    public GridAdapter() {    }    public int getCount() {      // TODO Auto-generated method stub      return apps.size();    }    public Object getItem(int position) {      // TODO Auto-generated method stub      return apps.get(position);    }    public long getItemId(int position) {      // TODO Auto-generated method stub      return position;    }    public View getView(int position, View convertView, ViewGroup parent) {      // TODO Auto-generated method stub      ImageView imageView = null;      if (convertView == null) {        imageView = new ImageView(Chouti.this);        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);        imageView.setLayoutParams(new GridView.LayoutParams(50, 50));      } else {        imageView = (ImageView) convertView;      }      ResolveInfo ri = apps.get(position);      imageView.setImageDrawable(ri.activityInfo          .loadIcon(getPackageManager()));      return imageView;    }  }}

loadApps方法是得到主界面上的图片和文字。

然后设置的自定义adapter中去。

看下运行后效果:

向上滑动imageview按钮后:

为了体现更好的效果,可以用两张滑动图片,一张朝上的,一张朝下的。根据监听器做相应的切换。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表