`
苹果超人
  • 浏览: 198395 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SlidingDrawer

阅读更多
  SlidingDrawer(隐藏式抽屉),它配置上采用了水平展开和垂直展开两种(android:orientation)方式,在XML里必须指定其使用的android:handle和android:content,前者委托要展开的图片(点击的那个控件来打开抽屉),后者则是要展开的Layout Content(打开抽屉后的内容)。还是很简单的。
配置文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<SlidingDrawer
    android:id="@+id/drawer1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:handle="@+id/myImage1"
    android:content="@+id/myContent1"
    android:orientation="horizontal"
    >
    <LinearLayout
    	android:id="@+id/layout1"
    	android:layout_width="35px"
    	android:layout_height="fill_parent"
    	android:gravity="center">
    	<ImageView
    		android:id="@id/myImage1"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:src="@drawable/left"/>
    </LinearLayout>
    <GridView
        android:id="@id/myContent1"
        android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:numColumns="2"
    	android:gravity="center"
    	android:background="@color/black"/>
</SlidingDrawer>
</RelativeLayout>

package com.kevin.slidingdrawer;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SlidingDrawer;
import android.widget.SlidingDrawer.OnDrawerCloseListener;
import android.widget.SlidingDrawer.OnDrawerOpenListener;
import android.widget.TextView;

public class Main extends Activity {
	private GridView gv;
	private SlidingDrawer sd;
	private ImageView im;
	private int[] icons = {
			R.drawable.android_normal,
			R.drawable.android_waving,
			R.drawable.left,
			R.drawable.right
	};
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gv = (GridView) findViewById(R.id.myContent1);
        sd = (SlidingDrawer) findViewById(R.id.drawer1);
        im = (ImageView) findViewById(R.id.myImage1);
        gv.setAdapter(new GridViewAdapter());
        // 设置SlidingDrawer被打开的事件处理
        sd.setOnDrawerOpenListener(new OnDrawerOpenListener() {			
			@Override
			public void onDrawerOpened() {
				im.setImageResource(R.drawable.right);
				
			}
		});
        // 设置SlidingDrawer被关闭的事件处理
        sd.setOnDrawerCloseListener(new OnDrawerCloseListener() {			
			@Override
			public void onDrawerClosed() {
				im.setImageResource(R.drawable.left);
			}
		});
    }
    // 因为我这边Adapter的数据不仅仅是TextView,所以我自己定义了一个Adapter
    class GridViewAdapter extends BaseAdapter{
		@Override
		public int getCount() {
			return icons.length;
		}

		@Override
		public Object getItem(int position) {
			return position;
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			LayoutInflater flater = Main.this.getLayoutInflater();
			View view = flater.inflate(R.layout.grid, null);
			ImageView iv = (ImageView) view.findViewById(R.id.imageView1);
			TextView tv = (TextView) view.findViewById(R.id.textView1);
			iv.setImageResource(icons[position]);
			tv.setText(String.valueOf(position));
			return view;
		}
    	
    }
}
分享到:
评论

相关推荐

    android slidingdrawer完整包

    滑动抽屉(SlidingDrawer)是Android早期版本中用于实现侧滑菜单的一种组件,它模仿了物理抽屉从屏幕边缘滑出和隐藏的效果。在Android SDK 1.5(API Level 3)中,SlidingDrawer是系统提供的原生控件,但随着Android...

    Android Launcher抽屉类SlidingDrawer的使用

    Android Launcher抽屉类SlidingDrawer的使用 AndroidLauncher抽屉类SlidingDrawer是一个非常有用的控件,它可以实现抽屉式的交互效果,用户可以通过点击handle来打开或关闭抽屉,里面可以放置各种控件,例如Button...

    Android SlidingDrawer抽屉效果

    在Android开发中,SlidingDrawer是早期用于实现滑动抽屉效果的一个组件,它允许开发者在界面下方或上方隐藏一个可滑动的视图,通常用于显示附加菜单或操作选项。这种设计模式常见于许多应用中,如谷歌地图、电子邮件...

    Android的SlidingDrawer范例程序

    在Android开发中,`SlidingDrawer`是一个非常实用的组件,它允许用户通过手势从屏幕边缘滑动出一个隐藏的抽屉,常用于存放菜单、设置或其他附加功能。本范例程序深入展示了如何有效地实现这一功能,使得用户界面更加...

    SlidingDrawer抽屉效果可以默认显示一部分。

    在Android应用开发中,抽屉效果(SlidingDrawer)是一种常见的界面交互元素,它允许用户通过滑动操作从屏幕边缘拉出隐藏的内容区域,通常用于显示菜单或额外的信息。标题"SlidingDrawer抽屉效果可以默认显示一部分...

    android slidingdrawer实例

    在Android开发中,SlidingDrawer 是一个非常常见的组件,它为用户提供了一种滑动打开和关闭的抽屉式界面效果。通常,这个组件用于隐藏一些不常用但必要的内容,如设置选项、帮助信息等,用户可以滑动抽屉来显示或...

    Android自带SlidingDrawer实例

    在Android开发中,SlidingDrawer是系统提供的一种滑动抽屉控件,它允许开发者将内容以抽屉的形式从屏幕边缘滑出,通常用于隐藏不常用但必要的功能或信息。这个实例是专为初学者设计的,展示了如何使用SlidingDrawer...

    SlidingDrawer(抽屉)

    在Android开发中,SlidingDrawer控件是一种常用的设计元素,它允许用户通过滑动手势从屏幕边缘拉出或隐藏一个包含内容的“抽屉”。这个抽屉通常用于隐藏不常用但重要的功能或信息,比如设置选项、菜单或者额外的内容...

    android控件SlidingDrawer的学习应用

    在Android开发中,SlidingDrawer控件是一种常用的交互元素,它允许用户通过滑动手势从屏幕边缘拉出或隐藏一个抽屉式视图。这个控件在早期版本的Android API中广泛使用,但在API Level 17之后逐渐被更灵活的滑动面板...

    四个方向的SlidingDrawer实例

    在Android应用开发中,SlidingDrawer是早期API中提供的一种组件,用于实现滑动抽屉效果,常用于隐藏和显示一些附加功能或信息。在这个"四个方向的SlidingDrawer实例"中,我们将深入探讨如何创建一个能从上下左右四个...

    Android学习笔记(二四):多页显示SlidingDrawer的使用.doc

    在Android开发中,SlidingDrawer是一个非常实用的组件,它允许用户通过拖动一个手柄来显示或隐藏内容。在本篇Android学习笔记中,我们将探讨如何使用SlidingDrawer实现多页显示,并理解其工作原理和相关属性。 首先...

    android SlidingDrawer 左侧拉出

    在Android开发中,`SlidingDrawer`是一个非常实用的组件,它允许用户通过手势从屏幕边缘滑出一个隐藏的视图,类似于许多应用中的抽屉式导航菜单。在这个实例中,我们将关注如何实现一个从左侧拉出的`SlidingDrawer`...

    自定义四个方向上的SlidingDrawer(抽屉效果)

    在Android开发中,SlidingDrawer是一个非常常见的组件,它提供了类似抽屉的滑动效果,通常用于隐藏或显示一些内容。然而,原生的SlidingDrawer仅支持上下两个方向的滑动,对于需要自定义更多方向(如左右)的需求,...

    Android-SlidingDrawer一个Android滑动抽屉支持ListViewScrollViewRecyclerView

    在Android应用开发中,SlidingDrawer控件是一个非常实用的组件,它允许用户通过手势从屏幕边缘滑出隐藏的内容,通常用于实现类似抽屉的效果。本文将深入探讨Android的SlidingDrawer及其在不同场景下的应用,包括与...

    安卓SlidingDrawer抽屉控件源码.zip

    在Android开发中,SlidingDrawer控件是一种常用的交互元素,它允许用户通过滑动手势从屏幕边缘拉出或隐藏一个包含内容的“抽屉”。这个压缩包“安卓SlidingDrawer抽屉控件源码.zip”提供了这样一个控件的示例代码,...

    SlidingDrawer抽屉式滑动效果

    在Android开发中,SlidingDrawer是一个非常常见的组件,它提供了抽屉式的滑动效果,常用于隐藏或显示一些辅助操作或菜单。这个组件允许用户通过拖动一个手柄来打开和关闭一个隐藏的视图,使得用户界面更加交互性和...

    知识共享-android之slidingdrawer的应用(雷惊风).

    标题与描述中提到的知识点是关于Android开发中的`SlidingDrawer`组件的应用。在Android开发中,`SlidingDrawer`是一种用于创建滑动抽屉效果的布局容器,它允许用户通过触摸屏幕边缘来展开或收起一个包含额外控件的...

    简单实现的左侧点击按钮 slidingdrawer

    在标题提到的"简单实现的左侧点击按钮 slidingdrawer"中,开发者创建了一个轻量级的解决方案,以便快速集成到自己的项目中。抽屉效果通常是通过点击屏幕左侧边缘触发,然后滑出一个包含内容的面板。 在描述中,提到...

    SlidingDrawer侧滑抽屉

    在Android应用开发中,SlidingDrawer控件是一个非常实用的组件,它允许用户通过从屏幕边缘滑动来显示或隐藏一个包含内容的抽屉。在Android Studio 3.0版本中,虽然SlidingDrawer已被弃用,但它仍然是许多老项目中的...

    android自定义slidingdrawer

    在Android开发中,SlidingDrawer 是一个非常常见的组件,它允许用户通过拖动来显示或隐藏内容,类似于抽屉的效果。然而,标准的SlidingDrawer组件在某些情况下可能无法满足开发者的需求,比如需要部分数据始终可见。...

Global site tag (gtag.js) - Google Analytics