当前位置: 移动技术网 > 移动技术>移动开发>Android > Android编程实现抽屉效果的方法示例

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

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例讲述了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程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网