2011.06.03——— android 1.6 launcher研究之SlidingDrawer
16lz
2021-01-23
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
main.xml
handler.xml
代码不难 但是需要注意几点:
1、注意xml里面的SlidingDrawer 它里面的handler和content的id 都是"@+id/",并不是"@id/",都是新建的id 不是指向的id 而下面的ImageView,linerLayou的id都是指向的
2、layou:gravity 在父组件里面 自己的对齐方式
gravity 如EditText 里面文字的对齐方式
参考: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 里面文字的对齐方式
更多相关文章
- 三种方式实现自定义圆形页面加载中效果的进度条
- android布局时,左侧宽度固定而右侧textview高度变化,怎么9png实现
- Android 布局文件属性讲解
- Android - AutoCompleteTextView (输入框动态匹配内容)
- ANDROID L——Material Design详解(主题和布局)
- Android ashmem的实现方式
- Android 数据存储四种方式
- android中shape布局详解