找了个例子练习隐藏小抽屉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隐藏式抽屉",也被称为滑动抽屉或Sliding Drawer,是一种常见的交互元素,通常用于隐藏并展示次要或者扩展性的内容。这种控件允许用户通过滑动手势从屏幕边缘拉出或收起内容,既节省了屏幕空间,又增加了...
在IT领域,"自动隐藏抽屉效果"是一种常见的交互设计技术,主要应用于移动应用和现代网页设计中。这种效果使得用户可以滑动打开一个侧边栏(通常包含导航菜单或其他功能),而当用户停止交互后,侧边栏会自动滑回隐藏...
在本文中,我们将深入探讨如何使用Qt库创建一个类似于Visual Studio的可停靠、可隐藏、抽屉状态的控件框架。Qt是一个跨平台的应用程序开发框架,它使用C++语言,广泛应用于桌面和移动应用的开发。DockWidget是Qt提供...
通过监听用户的滑动动作, DrawerLayout 可以决定何时显示或隐藏抽屉。这通常通过 `setDrawerListener()` 方法设置的 DrawerListener 来实现,监听 `onDrawerSlide()`, `onDrawerOpened()`, `onDrawerClosed()` 等...
8. **响应式设计**:考虑不同设备的屏幕大小和分辨率,抽屉中的内容应能适配各种屏幕尺寸,避免在小屏幕上显示过多信息导致拥挤。 9. **测试与优化**:在实际设备或模拟器上进行测试,确保抽屉在各种滑动速度和手势...
在C# WinForm应用开发中,抽屉菜单是一种常见的界面设计模式,它提供了一种优雅的方式来展示和隐藏大量菜单选项,通常用于节省屏幕空间。抽屉菜单通常在点击按钮或图标时滑动出现,给用户带来更加现代和直观的交互...
在Android开发中,抽屉效果通常指的是模仿物理抽屉开合动作的一种界面交互设计,它为用户提供了一种隐藏和展示内容的方式。这种效果在很多应用中都有应用,比如导航菜单、设置面板等。本项目“Android之抽屉效果...
在本文中,我们将深入探讨如何使用Qt框架实现抽屉式菜单。Qt是一个强大的跨平台应用程序开发框架,广泛用于创建美观且功能丰富的用户界面。抽屉式菜单,也称为侧滑菜单或滑出式菜单,常见于移动应用设计中,允许用户...
使用`DrawerLayout`的`openDrawer()`和`closeDrawer()`方法来手动控制抽屉的显示和隐藏。这两个方法接受一个表示抽屉位置的 Gravity 常量,如`GravityCompat.START`或`GravityCompat.END`。 6. **...
"抽屉"效果是一种常见的设计模式,常用于移动应用和现代桌面应用中,它提供了一种从屏幕边缘滑出隐藏菜单或工具栏的方式,既节省空间又保持了界面的简洁性。在这个主题中,我们将探讨一个名为"Sidebar"的第三方控件...
可以使用 `display:none` 或 `visibility:hidden` 来实现隐藏效果,然后通过 CSS3 的 `transform` 属性来控制抽屉的打开和关闭,例如 `translateX(-100%)` 和 `translateX(0)`。 2. **jQuery选择器**:jQuery 提供...
抽屉效果,常在移动应用或现代桌面应用中见到,是一种动态显示或隐藏内容的交互方式,类似于现实世界中抽屉的开合。 首先,抽屉效果的核心在于视图(View)的动态变化。在MFC中,我们通常创建一个自定义的CView派生...
抽屉布局在Android中主要用于提供导航菜单或者隐藏的额外内容,用户可以通过手势从屏幕边缘滑动来打开和关闭。 1. **Android DrawerLayout** 抽屉效果主要通过`DrawerLayout`组件来实现,它是Android官方提供的一...
而SlidingDrawer组件是Android SDK提供的一种交互控件,它允许开发者在界面中添加一个可滑动的抽屉效果,用于隐藏并展示额外的信息或功能。在Android开发中,SlidingDrawer常被用于实现类似iOS中的滑动菜单或者底部...
通过使用Vue.js框架,开发者可以通过自定义组件的方式实现Drawer抽屉效果。在实现过程中,通常需要考虑组件的样式、行为以及如何响应外部事件。 本篇文章所提供的Drawer抽屉实现代码,主要使用了Vue的模板语法、...
在抽屉式菜单中,我们通常将其初始状态设置为隐藏,并将其放置在窗体的左侧,以便在需要时滑出。 2. **Button控件**:这个按钮通常设置为汉堡图标或者其他表示菜单的图形,点击后会触发抽屉的展开和收起。可以通过...
抽屉效果,通常在移动应用设计中被广泛采用,它为用户提供了一种便捷的方式来访问隐藏的侧边栏或菜单,而不会完全遮挡主界面。这种效果在许多流行的应用如QQ、微信等中都能看到,它增加了应用的交互性和用户体验。...