欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-11-21 18:26:34
本文实例讲述了android编程实现抽屉效果的方法。分享给大家供大家参考,具体如下: 今天在手机上实现了抽屉效果,其实很简单,但是效果却很酷。 首先在layout 下设...

本文实例讲述了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中去。

看下运行后效果:

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

向上滑动imageview按钮后:

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

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

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

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