Android 自定义属性之QQ侧滑菜单
来源:互联网 发布:人工智能 产品 编辑:程序博客网 时间:2024/06/05 03:22
Android自定义属性之QQ侧滑菜单
一. 自定义ViewGroup
1. 构造方法的选择,获得一些需要用到的值。
2. onMeasure计算子View的宽和高,以及自己的宽和高
1)android:background="#0000":表示透明背景色
创建一个侧滑菜单的布局,并将背景色设置为透明
2)自定义属性文件attr.xml
1. 在attr.xml中声明控件属性及数据格式
<attr name = "rightPadding"format ="dimension"></attr>
2. 将上述控件声明可用
<declare-styleablename = "ScrollingMenu">
<attrname = "rightPadding"></attr>
</declare-styleable>
3. 在主xml,activity_main.xml中用自定义属性和侧滑菜单
布局。
3.1 应用自定义属性:
1. 定义命名空间:
xmlns:hyman="http://schemas.android.com/apk/res/co
m.example.qqmenudemo"
2. 使用自定义属性:hyman:rightPadding="50dp"
3.2 使用策划菜单布局
<includelayout="@layout/activity_menu_left"/>
3. onLayout决定子View的布局和位置。
4. onTouchEvent 响应用户的滑动事件。
-----------------------------------------------------------------------------------------
二. 构造方法选择
1.context new CustomViewGroup(context)
this(context, null); // 调用两个参数的构造方法。
一个参数的构造方法,主要在类里进行创建对象使用
2.context, attr 布局文件中声明(没有自定义属性)
this(context, attr, 0); //调用三个参数的构造方法。
3.context, attr, defStyle (有自定义属性),屏幕宽度,自定义属性等
3)构造方法中获取属性值:
1. 获取自定义属性:
TypedArraya = context.getTheme().obtainStyledAttributes(attrs,
R.styleable.ScrollingMenu,defStyle, 0);
2. 屏幕的宽度
WindowManager manager =(WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics manager.getDefaultDisplay().getMetrics(outMetrics);
mScreenWidth = outMetrics.widthPixels;
--------------------------------------------------------------
三. 自定义属性
1.attr.xml 自定义属性的名称,格式,被谁使用
2.布局文件 xmlns 命名空间为主程序所在的包名(使用)
3.在三个参数的构造方法中,获得自定义属性的值。
-----------------------------------------------------
属性动画
Android3.0 以上或者nineoldanimation.jar包两个的接口是一致的。
this.scrollTo(mMenuWidth, 0);
this.smoothScrollTo(mMenuWidth, 0);
// 调用属性动画,设置translationX:X方向偏移量
ViewHelper.setTranslationX(mMenu,mMenuWidth *scale);
ViewHelper.setScaleX(mMenu, leftScale); // X方向缩放
ViewHelper.setScaleY(mMenu, leftScale); // Y方向缩放
ViewHelper.setAlpha(mMenu, leftAlpha); // 透明度设置
// 内容的变化
ViewHelper.setPivotX(mContent, 0);// 设置content缩放的中心点
ViewHelper.setPivotY(mContent,mContent.getHeight() / 2);
ViewHelper.setScaleX(mContent, rightScale);
ViewHelper.setScaleY(mContent, rightScale);
- Android 自定义属性之QQ侧滑菜单
- Android自定义View之仿QQ侧滑菜单实现
- 自定义属性:QQ菜单
- Android 之打造QQ 侧滑菜单
- 自定义view 之 仿QQ侧滑菜单
- android:自定义HorizontalScrollView实现qq侧滑菜单
- android:自定义HorizontalScrollView实现qq侧滑菜单 标签: HorizontalScrollView自定义viewqq侧滑菜单 2016
- 自定义控件--QQ侧滑菜单
- 仿SlidingMenu自定义QQ侧滑菜单
- Android之仿QQ的侧滑菜单
- 【Android】自定义控件-仿QQ联系人侧滑条目,右侧滑菜单。
- Android仿QQ侧滑菜单
- Android 仿QQ侧滑菜单
- Android防QQ侧滑菜单
- 自定义android侧滑菜单
- Android 自定义侧滑菜单
- Android 自定义侧滑菜单
- 自定义viewgroup 继承 FrameLayout 仿QQ侧滑菜单
- Android 条码扫描二维码扫描—ZXing android 改进版本
- qsort排序方法
- 移动尺寸
- 图的基本存储基本方式三
- 关于FOUC与@import
- Android 自定义属性之QQ侧滑菜单
- Visitor模式理解
- JDK Logger
- select,poll,epoll区别
- unity3D 塔防游戏
- Maven项目中修改jre版本
- ie9 中出现不明的异常(参数是必选项 (Argument not optional)、尚未实现)等
- FastCGI Error Number: 5 (0x80070005).
- 图的基本存储的基本方式二 链表