最近在研究**Lanucher**,看了源码,发现了**SlidingDrawer**这个类,也就是所谓的"抽屉"类。它的用法很简单,要包括**handle**,和**content**.
**handle**就是当你点击它的时候,**content**要么抽抽屉要么关抽屉。别的不多说了,具体步骤如下.
1.新建**Android**工程,命名为**SlidingDrawer**.
2.准备素材,在这里我的图标是用**Launcher2**里面的图标,放在**drawable-hdpi**文件夹目录结构如下:
![](https://box.kancloud.cn/2016-08-10_57aae595b0e37.gif)
3.设置**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" android:background="#808080" >
<SlidingDrawer android:id="@+id/slidingdrawer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:handle="@+id/handle" android:content="@+id/content">
<Button android:id="@+id/handle" android:layout_width="88dip" android:layout_height="44dip" android:background="@drawable/handle" />
<LinearLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00ff00">
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />
<EditText android:id="@+id/editText" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
~~~
4.设置**handle**图标的样式,在**drawable**里添加**handle.xml**,代码如下:
~~~
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/handle_normal" />
<item android:state_pressed="true" android:drawable="@drawable/handle_pressed" />
<item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/handle_focused" />
<item android:state_enabled="true" android:drawable="@drawable/handle_normal" />
<item android:state_focused="true" android:drawable="@drawable/handle_focused" />
</selector>
~~~
5.运行之。将会得到如下效果:
![](https://box.kancloud.cn/2016-08-10_57aae595c7a08.gif)
![](https://box.kancloud.cn/2016-08-10_57aae595e35de.gif)
的比较简单呵呵,如果想深入了解,大家看**Launcher**源码吧!
- 前言
- (一)Android常用名令集锦(图文并茂)!
- (二)Android Launcher抽屉类SlidingDrawer的使用!
- (三)Android 中自定义View的应用.
- (四)Android 中自定义属性(attr.xml,TypedArray)的使用!
- (五)Android 中LayoutInflater的使用!
- (六)Android 中MenuInflater的使用(布局定义菜单)!
- (七)Android 中Preferences的使用!
- (八)Android Widget开发案例(世界杯倒计时!)
- (九)Android Handler的使用!!!
- (十)Android PopupWindow的使用!!!
- (十一)Android 通用获取Ip的方法(判断手机是否联网的方法)!!!
- (十二)Android 在一个应用中如何启动另外一个已安装的应用!!!
- (十三)Android 数据库SQLiteDatabase的使用!!
- (十四)Android Location的使用!!
- (十五)通过Location获取Address的使用!
- (十六)Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
- (十七)Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- (十八)列出Android设备中所有启动的服务,及判断某个服务是否开启!
- (十九)Android开发中,使用线程应该注意的问题!
- (二十)Android与JavaScript方法相互调用!
- (二十一)Android中创建与几种解析xml的方法!
- (二十二)Android中几种图像特效处理的集锦!!
- (二十三)Android中的日历读写操作!!!
- (二十四)Android WebView的缓存!!!
- (二十五)Android 中的AIDL!!!