Android自定义拖拉窗控件
来源:互联网 发布:单片机课程设计目的 编辑:程序博客网 时间:2024/06/05 23:42
在项目中有这样一个需求,一张全屏的地图,上面覆盖一个窗口显示路线列表,而这个窗口是个拖拉窗,可以全屏,半屏,和不显示,这个跟IOS7和android中的消息栏有点像,只不过可以拖到中间。Android中有一个SlidingDrawer控件,但无法满足上面说的三个状态,自己就写了一个,把demo简单介绍一下。
实现原理还是比较简单,一个FrameLayout做容器,里面直接显示地图,然后再在上面放一个Layout做为drawer layout,剩下的就是让这个drawer layout在处理onTouch事件,拖动时改变位置,点击时改变状态等。需要注意的一个问题是,手指离开屏幕后,drawer layout能自动滑动到对应的状态位置(底部,中间,上面),此时只能使用property animation或者自己去重绘动画,如果使用属性动画的话,程序又要支持低版本,可以使用nineoldandroid兼容包(属性动画api11才开始支持)。
demo github地址:https://github.com/dfqin/SlidingDrawer
部分代码:
private void move2Bottom(int duration){if(duration < 100){duration = 100;Log.e("", "move2Top(int duration, boolean isUp) pass the wrong duration");}state = DrawerState.Bottom;ObjectAnimator ani;if(duration == FAST_ANIMATION_DURATION || duration < 200){ani = ObjectAnimator.ofFloat(drawer, "translationY", 0, containerHeight - drawer.getTop() - DRAG_BAR_VALUE ).setDuration(duration);} else {int offTemp = containerHeight - drawer.getTop() - DRAG_BAR_VALUE;ani = ObjectAnimator.ofFloat(drawer, "translationY", 0, offTemp, offTemp - ANIMATION_BOUND_VALUE, offTemp ).setDuration(duration);}ani.addListener(this);ani.start();}
0 0
- Android自定义拖拉窗控件
- android 拖拉控件
- android 拖拉控件
- Android拖拉控件的实现(类似抽屉)
- Android 拖拉控件遇到的问题
- gwt之拖拉控件
- Android 自定义覆盖层控件,悬浮窗控件。
- android基础---拖拉与缩放
- android基础---拖拉与缩放
- android 拖拉图片 选中居中
- [Android自定义控件] Android自定义控件
- Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- C# 鼠标拖拉移动窗体控件
- MFC中的CApp,CMainFrame,CDoc,CView
- std::map源码分析
- 总结小数格式化DecimalFormat
- Sqlite3 简单使用
- Bus Route
- Android自定义拖拉窗控件
- android-Application的使用-随心
- 地铁摸腿男被抓
- [Android] 性能获取方式-转自淘测试
- GDI坐标系统(下)
- Jcrop是一个功能强大的图像裁剪引擎
- Android开发之InstanceState详解
- shell中的条件判断、参数以及变量替换
- oracle 相关