`
蓝月儿
  • 浏览: 49833 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

隐藏小抽屉的使用

阅读更多
找了个例子练习隐藏小抽屉SlidingDrawer 不要忘记设置其handle和Content属性,前者是一个布局,而后者是这个布局所处的位置,还要在activity中重写小抽屉打开和关闭时的事件,也可以修改小抽屉的方向属性,使其变为垂直方向的。其值的设置方式是“@+id/id”,并且在后来的布局中id则是"@id/id",又一次可以练习BaseAdapter,重写它的各个方法,尤其返回值是View类型的方法中LayoutInflater类。

Activity:
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SlidingDrawer;

public class SlidingDrawerpractice extends Activity
{
	private GridView gvGridView;
	private SlidingDrawer sdDrawer;
	private ImageView imageView;
	private int[] icons={R.drawable.alarm,R.drawable.calendar,R.drawable.camera,R.drawable.clock,R.drawable.music};
	private String[] items={"alarm","calender","camera","clock","music"};
 
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 加载main.xml Layout */
    setContentView(R.layout.main);
    /* 初始化对象 */
    gvGridView=(GridView)findViewById(R.id.myContent1);
    sdDrawer=(SlidingDrawer)findViewById(R.id.drawer1);
    imageView=(ImageView)findViewById(R.id.myImage1);
    MyGridViewAdapter adapter=new MyGridViewAdapter(this, items, icons);
    gvGridView.setAdapter(adapter);
    sdDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {
		
		@Override
		public void onDrawerOpened() {
			// TODO Auto-generated method stub
			imageView.setImageResource(R.drawable.icon);
		}
	});
    sdDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
		
		@Override
		public void onDrawerClosed() {
			// TODO Auto-generated method stub
			imageView.setImageResource(R.drawable.icon);
		}
	});
  }
}

GridViewAdapter:

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyGridViewAdapter extends BaseAdapter{

	private Context ctxContext;
	private String[] _items;
	private int[] _icons;
	public MyGridViewAdapter(Context ctx,String[] items,int[] icons)
	{
		this.ctxContext=ctx;
		this._items=items;
		this._icons=icons;
	}
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return _items.length;
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return _items[position];
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		LayoutInflater inflater=LayoutInflater.from(ctxContext);
		convertView=inflater.inflate(R.layout.grid, null);
		ImageView imageView=(ImageView) convertView.findViewById(R.id.icon);
		imageView.setImageResource(_icons[position]);
		TextView textView=(TextView)convertView.findViewById(R.id.text);
		textView.setText(_items[position]);
		return convertView;
	}

}

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_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:textSize="16sp"
  />
  <SlidingDrawer 
    android:id="@+id/drawer1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:handle="@+id/layout1" 
    android:content="@+id/myContent1" 
    android:orientation="horizontal"
  >
    <LinearLayout 
      android:id="@id/layout1" 
      android:layout_width="35px" 
      android:layout_height="fill_parent"
      android:background="@drawable/black"
      android:gravity="center" 
    >
      <ImageView
        android:id="@+id/myImage1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/icon"
      />
    </LinearLayout>
    <GridView 
      android:id="@id/myContent1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:numColumns="2"
      android:background="@drawable/black" 
      android:gravity="center"
    />       
  </SlidingDrawer>
</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
>
  <ImageView 
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
  />
  <TextView 
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="20sp"
    android:gravity="center"
    android:textColor="#0033ff"
  />
</LinearLayout>




  • 大小: 14.4 KB
  • 大小: 48.2 KB
分享到:
评论

相关推荐

    Android隐藏式抽屉

    "Android隐藏式抽屉",也被称为滑动抽屉或Sliding Drawer,是一种常见的交互元素,通常用于隐藏并展示次要或者扩展性的内容。这种控件允许用户通过滑动手势从屏幕边缘拉出或收起内容,既节省了屏幕空间,又增加了...

    自动隐藏抽屉效果

    在IT领域,"自动隐藏抽屉效果"是一种常见的交互设计技术,主要应用于移动应用和现代网页设计中。这种效果使得用户可以滑动打开一个侧边栏(通常包含导航菜单或其他功能),而当用户停止交互后,侧边栏会自动滑回隐藏...

    类似于Visual Studio的可停靠、可隐藏、抽屉状态Qt控件框架

    在本文中,我们将深入探讨如何使用Qt库创建一个类似于Visual Studio的可停靠、可隐藏、抽屉状态的控件框架。Qt是一个跨平台的应用程序开发框架,它使用C++语言,广泛应用于桌面和移动应用的开发。DockWidget是Qt提供...

    Android抽屉效果上下抽屉

    通过监听用户的滑动动作, DrawerLayout 可以决定何时显示或隐藏抽屉。这通常通过 `setDrawerListener()` 方法设置的 DrawerListener 来实现,监听 `onDrawerSlide()`, `onDrawerOpened()`, `onDrawerClosed()` 等...

    抽屉布局的使用

    8. **响应式设计**:考虑不同设备的屏幕大小和分辨率,抽屉中的内容应能适配各种屏幕尺寸,避免在小屏幕上显示过多信息导致拥挤。 9. **测试与优化**:在实际设备或模拟器上进行测试,确保抽屉在各种滑动速度和手势...

    C# winform抽屉菜单的两套代码

    在C# WinForm应用开发中,抽屉菜单是一种常见的界面设计模式,它提供了一种优雅的方式来展示和隐藏大量菜单选项,通常用于节省屏幕空间。抽屉菜单通常在点击按钮或图标时滑动出现,给用户带来更加现代和直观的交互...

    Android 之抽屉效果(上下抽屉)

    在Android开发中,抽屉效果通常指的是模仿物理抽屉开合动作的一种界面交互设计,它为用户提供了一种隐藏和展示内容的方式。这种效果在很多应用中都有应用,比如导航菜单、设置面板等。本项目“Android之抽屉效果...

    Qt 实现抽屉式菜单

    在本文中,我们将深入探讨如何使用Qt框架实现抽屉式菜单。Qt是一个强大的跨平台应用程序开发框架,广泛用于创建美观且功能丰富的用户界面。抽屉式菜单,也称为侧滑菜单或滑出式菜单,常见于移动应用设计中,允许用户...

    右侧弹出抽屉

    使用`DrawerLayout`的`openDrawer()`和`closeDrawer()`方法来手动控制抽屉的显示和隐藏。这两个方法接受一个表示抽屉位置的 Gravity 常量,如`GravityCompat.START`或`GravityCompat.END`。 6. **...

    C# 抽屉第三方控件 sidebar + 使用说明

    "抽屉"效果是一种常见的设计模式,常用于移动应用和现代桌面应用中,它提供了一种从屏幕边缘滑出隐藏菜单或工具栏的方式,既节省空间又保持了界面的简洁性。在这个主题中,我们将探讨一个名为"Sidebar"的第三方控件...

    网站抽屉菜单(jquery实现)

    可以使用 `display:none` 或 `visibility:hidden` 来实现隐藏效果,然后通过 CSS3 的 `transform` 属性来控制抽屉的打开和关闭,例如 `translateX(-100%)` 和 `translateX(0)`。 2. **jQuery选择器**:jQuery 提供...

    MFC实现的仿QQ的抽屉效果

    抽屉效果,常在移动应用或现代桌面应用中见到,是一种动态显示或隐藏内容的交互方式,类似于现实世界中抽屉的开合。 首先,抽屉效果的核心在于视图(View)的动态变化。在MFC中,我们通常创建一个自定义的CView派生...

    android上下左右抽屉

    抽屉布局在Android中主要用于提供导航菜单或者隐藏的额外内容,用户可以通过手势从屏幕边缘滑动来打开和关闭。 1. **Android DrawerLayout** 抽屉效果主要通过`DrawerLayout`组件来实现,它是Android官方提供的一...

    Android Launcher抽屉类SlidingDrawer的使用

    而SlidingDrawer组件是Android SDK提供的一种交互控件,它允许开发者在界面中添加一个可滑动的抽屉效果,用于隐藏并展示额外的信息或功能。在Android开发中,SlidingDrawer常被用于实现类似iOS中的滑动菜单或者底部...

    VUE组件中的 Drawer 抽屉实现代码

    通过使用Vue.js框架,开发者可以通过自定义组件的方式实现Drawer抽屉效果。在实现过程中,通常需要考虑组件的样式、行为以及如何响应外部事件。 本篇文章所提供的Drawer抽屉实现代码,主要使用了Vue的模板语法、...

    winform 左侧抽屉式菜单

    在抽屉式菜单中,我们通常将其初始状态设置为隐藏,并将其放置在窗体的左侧,以便在需要时滑出。 2. **Button控件**:这个按钮通常设置为汉堡图标或者其他表示菜单的图形,点击后会触发抽屉的展开和收起。可以通过...

    抽屉效果的实现

    抽屉效果,通常在移动应用设计中被广泛采用,它为用户提供了一种便捷的方式来访问隐藏的侧边栏或菜单,而不会完全遮挡主界面。这种效果在许多流行的应用如QQ、微信等中都能看到,它增加了应用的交互性和用户体验。...

Global site tag (gtag.js) - Google Analytics