2011.06.03——— android 1.6 launcher研究之SlidingDrawer
参考:http://www.cnblogs.com/salam/archive/2010/10/19/1855511.html

lidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容。它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须设置布局,在布局文件中必须指定handle和content.

MainActivity.java

package com.lp.drawer;import android.app.Activity;import android.graphics.drawable.TransitionDrawable;import android.os.Bundle;import android.widget.ImageButton;import android.widget.SlidingDrawer;import android.widget.SlidingDrawer.OnDrawerCloseListener;import android.widget.SlidingDrawer.OnDrawerOpenListener;import android.widget.SlidingDrawer.OnDrawerScrollListener;import android.widget.TextView;public class MainActivity extends Activity {        private SlidingDrawer slidingbar;    private ImageButton handler;    private TextView tv;    private TransitionDrawable td;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                slidingbar = (SlidingDrawer)findViewById(R.id.silidingbar);        handler = (ImageButton)findViewById(R.id.handler);        tv = (TextView)findViewById(R.id.tv);        td = (TransitionDrawable)handler.getDrawable();                DrawerManager dm = new DrawerManager();        slidingbar.setOnDrawerOpenListener(dm);        slidingbar.setOnDrawerCloseListener(dm);        slidingbar.setOnDrawerScrollListener(dm);            }        private class DrawerManager implements OnDrawerScrollListener,OnDrawerOpenListener,OnDrawerCloseListener{        public void onDrawerOpened() {            td.reverseTransition(150);        }                public void onDrawerClosed() {            td.reverseTransition(150);        }        public void onScrollStarted() {            tv.setText("开始滚动");        }        public void onScrollEnded() {            tv.setText("结束滚动");        }            }}



main.xml
<?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"    ><SlidingDrawerandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:id="@+id/silidingbar"android:handle="@+id/handler"android:content="@+id/content"><ImageButtonandroid:layout_width="128dip"android:layout_height="128dip"android:id="@id/handler"android:src="@drawable/handler"/><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@id/content"><TextViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:textColor="#fe12ed"android:textStyle="bold"android:textSize="15px"android:id="@+id/tv"/></LinearLayout></SlidingDrawer></LinearLayout>


handler.xml


<?xml version="1.0" encoding="utf-8"?><transition xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/arrow_up" /><item android:drawable="@drawable/arrow_down" /></transition>


代码不难 但是需要注意几点:
1、注意xml里面的SlidingDrawer 它里面的handler和content的id 都是"@+id/",并不是"@id/",都是新建的id 不是指向的id 而下面的ImageView,linerLayou的id都是指向的
2、layou:gravity 在父组件里面 自己的对齐方式
gravity 如EditText 里面文字的对齐方式


更多相关文章

  1. 三种方式实现自定义圆形页面加载中效果的进度条
  2. android布局时,左侧宽度固定而右侧textview高度变化,怎么9png实现
  3. Android 布局文件属性讲解
  4. Android - AutoCompleteTextView (输入框动态匹配内容)
  5. ANDROID L——Material Design详解(主题和布局)
  6. Android ashmem的实现方式
  7. Android 数据存储四种方式
  8. android中shape布局详解

随机推荐

  1. android sql详细使用
  2. Android多个APK共享数据(Shared User ID)
  3. Activity LifeCycle 生命周期
  4. android 音乐视频播放器(github上十二款最
  5. android简单实例-----------------使用SQ
  6. Android测试之ADB部署
  7. Android Studio项目中的MainActivity.xml
  8. Android的Root原理
  9. Java - android中的枚举类型(Enum)
  10. 详解Android解析Xml的三种方式——DOM、S