android抽屉效果

本文将介绍如何使用Android SlidingDrawer组件创建滑动抽屉功能,并详细解释其关键属性及其用法。通过简单的代码示例,帮助开发者快速上手并应用到实际项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、抽屉功能,自己看很简单,代码拷贝自己跑一遍就知道了

2、注意点:

    SlidingDrawer  这个值的xml中的属性中
SlidingDrawer控件的一些属性:
android:allowSingleTap 指示是否可以通过handle打开或关闭
android:animateOnClick 指示是否当使用者按下手柄打开/关闭时是否该有一个动画。

android:content 隐藏的内容
android:handle handle 点击内容

----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" >
   
    <TextView android:layout_height = "wrap_content"
        android:layout_width= "fill_parent"
        android:text ="123456789\n 12312312312\n12312312312\n1312312312132"
        android:gravity= "center_vertical|center_horizontal"
        />

    <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/one"
            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/two" />
    </SlidingDrawer >

</ RelativeLayout>


-----java代码

package com.translate;

import java.util.List;

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 MainActivity 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. activity_main);
           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. down); // 响应开抽屉事件
                                                                                       // ,把图片设为向下的
                }
           });
            sd.setOnDrawerCloseListener( new SlidingDrawer.OnDrawerCloseListener() {
                 @Override
                 public void onDrawerClosed() {
                      iv.setImageResource(R.drawable. up); // 响应关抽屉事件
                }
           });
     }

      private void loadApps() {
           Intent intent = new Intent(Intent. ACTION_MAINnull);
           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(MainActivity.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;
           }

     }
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值