通常我们需要在用户的屏幕上展示更多的信息,但是用户的屏幕大小是有限的,那么我们如何利用有限的空间来展示更多的信息呢?Android为我们提供了SlidingDrawer类,帮助我们轻松实现想要的效果。诸如在墨迹天气中的墨迹推荐,360安全卫士中都有所体现。
下面我们就来学习SlidingDrawer类,实现上述效果:
效果图:
未展开时:
展开后:
下面看代码:
首先是布局文件:
<?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" android:background="@drawable/splash_background" > <SlidingDrawer android:id="@+id/slidingDrawer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:handle="@+id/handle" android:content="@+id/content" > <LinearLayout android:id="@+id/content" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/empty"> </LinearLayout> <Button android:id="@+id/handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" open " android:textSize="24dip" /> </SlidingDrawer> </LinearLayout>
主要属性:
android:handle="@+id/handle" 相当于展开或收回按钮,这里我用了一个Button来演示(TextView等都可以),在实际项目中使用ImageView比较好,只需设置展开和关闭时的图标样式就可以了。
android:content="@+id/content" 展开后增加的内容,没什么好说的。
主代码:
package com.cloay.slidingdrawer; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.SlidingDrawer; import android.widget.SlidingDrawer.OnDrawerCloseListener; import android.widget.SlidingDrawer.OnDrawerOpenListener; /** * 抽屉效果演示 * SlidingDrawerTestActivity.java * @author cloay * 2012-1-30 */ public class SlidingDrawerTestActivity extends Activity { /** Called when the activity is first created. */ private Button button; private SlidingDrawer slidingDrawer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.handle); slidingDrawer = (SlidingDrawer) findViewById(R.id.slidingDrawer); slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {//收回做一些处理 @Override public void onDrawerClosed() { button.setText("Open"); //这里我将文字提示改成Open } }); slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {//展开时做一些处理 @Override public void onDrawerOpened() { button.setText("Close"); //这里我将文字提示改成Close } }); } }
很简单,就不多写了!有问题请留言大家一起学习交流!
说明:转载请注明出处!