自定义viewgroup
来源:互联网 发布:读英语单词的软件 编辑:程序博客网 时间:2024/06/01 11:52
要做成这种效果
首先自定义一个viewgrup,让左边的view,位于右边圆圆心为起点,可伸缩
package com.xubaipei.viewlib;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;import android.widget.RelativeLayout;/** * Created by Administrator on 2016/10/7. */public class FloatButtonMenu extends ViewGroup { public FloatButtonMenu(Context context) { super(context); } public FloatButtonMenu(Context context, AttributeSet attrs) { super(context, attrs); } public FloatButtonMenu(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthMode = MeasureSpec.getMode(widthMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec); int sizeWidth = MeasureSpec.getSize(widthMeasureSpec); int sizeHeight = MeasureSpec.getSize(heightMeasureSpec); View menuBtnView = getChildAt(1); View menuView = getChildAt(0); int width; int height; measureChildren(widthMeasureSpec,heightMeasureSpec); width = menuView.getMeasuredWidth() + getPaddingLeft() - menuBtnView.getWidth() / 2 ; width = width + menuBtnView.getMeasuredWidth() + getPaddingRight(); height = menuBtnView.getMeasuredHeight() + getPaddingTop() + getPaddingBottom(); setMeasuredDimension(width,height); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { View menuBtnView = getChildAt(1); View menuView = getChildAt(0); menuBtnView.layout(menuView.getMeasuredWidth() - menuBtnView.getMeasuredWidth() / 2, 0, menuBtnView.getMeasuredWidth() + menuView.getMeasuredWidth() - menuBtnView.getMeasuredWidth() / 2, menuBtnView.getMeasuredHeight()); menuView.getMeasuredHeight(); menuBtnView.getMeasuredHeight(); int top = menuBtnView.getMeasuredHeight()/2 - menuView.getMeasuredHeight()/2; menuView.layout(0,top,menuView.getMeasuredWidth(),top+menuView.getMeasuredHeight()); }}练手
其中onLayout()中的参数l t r b 包括了viewgrup的parentview的padding和自己margin的值
0 0
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义viewGroup
- 自定义viewgroup
- 自定义viewgroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- 自定义ViewGroup
- Html学习笔记 --- html 中深入理解语义化
- 第二十二期 OpenWrt 原理和结构分析《路由器就是开发板》
- Python3中bytes与string的互相转换
- Leetcode-71. Simplify Path
- Hive 实践(四)、Hive 语法归纳
- 自定义viewgroup
- 串行通信接口小结
- 三层架构
- 使用Pageant Keyt创建key/value SSH Key
- JAVA中文编码和中文字符长度问题和解决方案
- HDU ACM 11 2012 素数判定
- [MFC]禁止双击标题栏最大化&还原
- 高效程序猿之(二)VS2010优秀插件
- 课堂笔记 软件、计算机语言、程序