本文来自http://blog.csdn.net/hellogv/ ,欢迎转摘,引用必须注明出处!
以前曾经介绍过《Android提高第十九篇之"多方向"抽屉》,当这个抽屉组件不与周围组件发生压挤的情况下(周围组件布局不变),是比较好使的,但是如果需要对周围组件挤压,则用起来欠缺美观了。
如下图。在对周围压挤的情况下,抽屉是先把周围的组件一次性压挤,再通过动画效果展开/收缩的,这种做法的好处是快速简单,坏处是如果挤压范围过大,则效果生硬。
本文实现的自定义抽屉组件,主要针对这种压挤效果做出改良,渐进式压挤周围组件,使得过渡效果更加美观。如下图。
本文实现的抽屉原理是酱紫:
1.抽屉组件主要在屏幕不可视区域,手柄在屏幕边缘的可视区域。即 抽屉.rightMargin=-XXX + 手柄.width
2.指定一个周围组件为可压挤,即LayoutParams.weight=1;当然用户也可以指定多个View.
3.使用AsyncTask来实现弹出/收缩的动画,弹出:抽屉.rightMargin+=XX,收缩:抽屉.rightMargin-=XX
总结,本文的自定义抽屉虽然对压挤周围组件有过渡效果,但是比较耗资源,读者可以针对不同的情况考虑使用。
本文的源码可以到http://download.csdn.net/detail/hellogv/3615686下载。
接下来贴出本文全部源代码:
main.xml的源码:
GridView的Item.xml的源码:
Panel.java是本文核心,抽屉组件的源码,这个抽屉只实现了从右往左的弹出/从左往右的收缩,读者可以根据自己的需要修改源码来改变抽屉动作的方向:
main.java是主控部分,演示了Panel的使用:
后面还会继续介绍如何在Panel加入拖拉效果的处理!
分享到:
相关推荐
“可动态布局”的Android抽屉组件之完整例子源码
“可动态布局”的Android抽屉组件之构建基础的例子源码
相互挤压的Button 博文链接:https://gundumw100.iteye.com/blog/1183978
android 抽屉(坐上右下都可以设置) 参考下面的链接:http://www.cnblogs.com/bluestorm/p/3716540.html https://pan.baidu.com/s/1c08Esj2
android类似双向抽屉效果实现,如海豚浏览器首页。
android实现抽屉列表,并且各个列表项前加有小图标,代码简单易懂,下载下来即可使用,修改为自己的布局即可使用抽屉效果。
android studio 抽屉和其他效果
这是我做的一个关于项目管理的程序的Android端,采用抽屉侧边栏(drawerlayout)布局,采用handler机制切换主页面ListVIew的数据,采用http+json获取数据。其中数据统计引入了Android的图表插件。
利用 v4包里的DrawerLayout 布局,实现一个 抽屉效果,抽屉内容使用RecyclerView 形成一个列表,当用户选则一项,内容里面跟着发生变化;
Android读写XML(上)——package说明.doc Android读写XML(下)——创建XML文档.doc ...Android基础教程之----动态更改屏幕方向的简单例子(LANDSCAPE与PORTRAIT)! .doc Android基础教程之----五大布局对象.doc
里面有DrawerLayout的使用方法和自定义抽屉式侧滑导航栏
谷歌官方推出了一种侧滑菜单的...2、抽屉菜单的摆放和布局通过android:layout_gravity属性来控制,可选值为left、right或start、end。 3、抽屉菜单的宽度为 dp 单位而高度和父View一样。抽屉菜单的宽度应该不超过320
一个Android滑动抽屉,上滑打开,滑下来关闭,也有自动倒带。 支持正常布局,Listview,ScrollView,RecyclerView。
VerticalDrawerLayout 一个垂直方向的DrawerLayout,抽屉从上向下展开。布局示例: android:id="@ id/vertical" android:layout_width="match_parent" android:layout_height="match_parent"> ...
大家可以参考该小项目,看看效果,学习学习,然后自己也可以修改增强一下效果。
默认显示抽屉的一部分,屏幕分上下二部分;通过打开按钮实现,抽屉的下面部分打开和关闭,同时上面部分自动伸展。
仿Uber页面布局-抽屉菜单基本框架 android 侧滑 抽屉 仿Uber UI设计 实现actionBar自定义实现 侧边栏自定义实现
安卓中1.5后加入了SlidingDrawer【隐藏式抽屉】,设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这个隐藏式抽屉。用SlidingDrawer注意两点,一个是android:handle(委托要展开的图片加载...
安卓多item抽屉动画效果,支持动态添加删除动画。 先看效果: 本文CSDN博客 http://blog.csdn.net/AndroidMsky/article/details/53083634 先解释一下标题不然被说成标题党可不好,为什么是超轻量,因为我知道用...
侧边栏是Android应用中很常见的一个界面效果(抽屉效果)。而利用DrawerLayout实现右侧栏是相对简单的。而且这个控件自带滑动效果,十分方便。 DrawerLayout属于android-support-v4.jar的包的内容,sdk新的就不用...