android SlidingDrawer(抽屉)

本文详细介绍了如何在Android应用中实现抽屉效果,包括布局文件配置、关键属性说明及常见问题解决方案。
最近项目中用到了抽屉效果,在这儿做个备注!大家喜欢看图,我先上个图:

[img]http://dl.iteye.com/upload/attachment/480047/c1c84549-5ff7-34c6-96f9-c6306ace9622.bmp[/img]
图中就是抽屉打开之后的效果,里面列出来了所有的正在运行的程序。点击可以关闭,点击骷髅头可以关闭所有正在运行的程序!
下面是布局文件:


<SlidingDrawer
android:id="@+id/run_app"
android:layout_width="555dip"
android:layout_height="56dip"

android:layout_gravity="right|center"
android:layout_marginTop="00dip"

android:orientation="horizontal"

android:handle="@+id/handle"
android:content="@+id/all_run_app">
<ImageView
android:id="@+id/handle"
android:src="@drawable/death"
android:layout_width="wrap_content"
android:layout_height="56dip"
/>
<LinearLayout
android:id="@+id/all_run_app"
android:orientation="horizontal"
android:background="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="56dip"
android:background="@drawable/rounded_kill_img" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="38dip">
<ImageView
android:id="@+id/refresh_all"
android:src="@drawable/refresh_press"
android:layout_width="wrap_content"
android:layout_height="38dip"/>
<ImageView
android:id="@+id/kill_all"
android:src="@drawable/kill_all_press"
android:layout_width="wrap_content"
android:layout_height="38dip"/>
</LinearLayout>
<TextView
android:id="@+id/show_mem"
android:layout_width="wrap_content"
android:layout_height="18dip"
android:textSize="12dip"/>
</LinearLayout>

<GridView
android:id="@+id/grid_all"
android:numColumns="12"
android:background="@drawable/rounded_kill_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</SlidingDrawer>

注意:
1、如果给SlidingDrawer添加android:clickable="true"则在抽屉活动的一块区域屏幕不会响应其他点击事件,即使抽屉式关闭的。
2、android:handle="@+id/handle"里面的handle是SlidingDrawer标签里面你要作为抽屉图标的view的id。android:content="@+id/all_run_app"中的all_run_app是SlidingDrawer标签里面你要作为抽屉里面内容显示的view布局的id。
3、上面的android:background="@drawable/rounded_kill_img"这句就是指定图中的圆角半透明背景的布局文件,我博客之前的一片文章有介绍这个!
4、android:numColumns="12"是指定GridView中一行所显示的数量。
其他就是在代码中初始化每个view,并为其点击事件添加相应的功能代码!

下面贴一段结束应用程序的代码:

private List<String> processName = new ArrayList<String>();
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (String pName : processName) {
manager.restartPackage(pName);
}

注意:restartPackage(pName);这个方法在2.1上可以结束一切应用程序,但在2.2上只能结束部分程序。关于结束本进程以及其他程序或进程大家可以参考这儿:http://www.cnblogs.com/crazypebble/archive/2011/04/05/2006213.html
http://h3clikejava.blog.163.com/blog/static/134473029201112083447207/

如果抽屉下方的布局是listview等,在使用了LinearLayout时抽屉是不会显示在这些view的上面的。为什么呢?
参考了这儿:
http://www.eoeandroid.com/forum-viewthread-tid-62987-highlight-SlidingDrawer.html
将最外层的布局形式改成了FrameLayout ,问题是解决了。
官方文档上是这么说:
SlidingDrawer should be used as an overlay inside layouts. This means SlidingDrawer should only be used inside of a FrameLayout or a RelativeLayout for instance
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制方法。通过结合数据驱动技术与Koopman算子理论,将非线性系统动态近似为高维线性系统,进而利用递归神经网络(RNN)建模并实现系统行为的精确预测。文中详细阐述了模型构建流程、线性化策略及在预测控制中的集成应用,并提供了完整的Matlab代码实现,便于科研人员复现实验、优化算法并拓展至其他精密控制系统。该方法有效提升了纳米级定位系统的控制精度与动态响应性能。; 适合人群:具备自动控制、机器学习或信号处理背景,熟悉Matlab编程,从事精密仪器控制、智能制造或先进控制算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①实现非线性动态系统的数据驱动线性化建模;②提升纳米定位平台的轨迹跟踪与预测控制性能;③为高精度控制系统提供可复现的Koopman-RNN融合解决方案; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注Koopman观测矩阵构造、RNN训练流程与模型预测控制器(MPC)的集成方式,鼓励在实际硬件平台上验证并调整参数以适应具体应用场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值