当前位置: 首页 > 工具软件 > Gravity View > 使用案例 >

《Android 进阶(三)》 自定义View之支持Gravity的ViewGroup

朱季
2023-12-01

1. 前言

前面两篇博客主要是介绍直接继承View后复写onDraw方法来实现一些不规则图形的绘制,来达到满足不同自定义View的需求,更注重的是图形的绘制变换和效果展示,前两天学习一些自定义ViewGroup的相关内容,分享一下。

2. 目标

支持Gravity的ViewGroup。

支持的Gravity的种类:左上,右上,左下,右下,中心。

3. 实现步骤

  1. 自定义属性:custom_gravity
  2. 自定义属性的取值范围:1-5(topleft, topright, bottomleft, bottomright, center)
  3. 自定义LayoutParam。参考LinearLayout,RelativeLayout等等
  4. 复写onMeasure, onLayout
  5. 复写LayoutParam相关的几个方法

4. 几点提醒

  1. onMeasure使用来确定子view的大小的,没有那么神秘,就是根据ViewGroup的大小和子View的LayoutParam来确定子View应该有的大小。通过
    MeasureSpec.makeMeasureSpec的方式生成MeasureSpec,通过调用子View的measure方法,把数据传递给子View,方便确定大小。
  2. onLayout方法同来确定子View的位置,传入的参数是当前View Group的上下左上角和右下角的位置,通过子View的属性值和一些其他判断条件,来计算子View应该摆放在哪个位置,然后通过
 类似资料: