ViewGroup Menu + Context
onTouchEvent
MOVE:
ViewGroup的lefMargin
UP:根据显示菜单的宽度,决定将其隐藏或者显示
1.Scroller
2.LeftMargin + Thread
继承: HorizontalScrollView
自定义ViewGroup
1.onMeasure
决定内部view(子View)的宽和高,以及自己的宽和高
2.onLayout
决定子View放置的位置
3.onTouchEvent
判断手指动作,决定效果
允许用户自定义设置菜单离屏幕右边的边距
- 书写xml文件 valuse/attr.xml
- 在布局文件中进行使用,特别注意xmlns
- 在构造方法中(3个参数的构造方法)中火的我们设置的值
菜单是在下面不动,没有被拖出来的效果。在内容区域底下
mMenuWidth
100px mMenuWidth-100
200px mMenuWidth-200
属性动画(Android 3.0 以上):TraslationX
getScrollX :mMenuWidth ~ 0
设置调用动画时机
ACTION MOVE
-
内容区域 1.0 ~0.7 缩放效果
-
菜单的变化量需要修改
-
菜单的显示时有缩放以及透明度变化
缩放效果: 0.7 ~ 1.0 1.0 - scale*0.3 透明度:0.6 ~ 1.0 0.6 + 0.4*scale
- 构造方法的选择,获得一些需要用到的值
- onMeasure 计算子 View 的宽和高,以及设置自己的宽和高
- onLayout 决定子 View 的布局的位置
- onTouchEvent 动画可选
-
context------new CustomViewGroip(context)
this(context, null);
-
context 、attr 布局文件中声明(没有自定义的属性)
this(context, attrs, 0);
-
context 、attr 、defStyle (有自定义的属性)
- attr.xml
- 布局文件中 xmlns=
- 在3个参数的构造方法中,获得我们自定义属性的值
Android 3.0 之前添加的
nineoldanimation.jar
Android 3.0之后不用添加,API都一样
=====================