写点什么

自定义 View:布局

用户头像
Changing Lin
关注
发布于: 刚刚
自定义View:布局

1.知识点

  • 布局过程:确定每个 View 的位置和尺寸

  • 作用:为绘制和触摸范围做支持

2.原理

  • 测量过程:从根 View 递归调用每一级子 View 的 measure 方法,对它们进行测量

  • 布局过程:从根 View 递归调用每一级子 View 的 layout 方法,把测量过程的得出的子 View 的位置和尺寸传递给子 View,子 View 保存

3.代码

import android.content.Context;import android.os.Build;import android.support.v7.widget.AppCompatImageView;import android.util.AttributeSet;
public class SquareImageView extends AppCompatImageView { public SquareImageView(Context context) { super(context); }
public SquareImageView(Context context, AttributeSet attrs) { super(context, attrs); }
public SquareImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { // setMeasuredDimension(widthMeasureSpec, widthMeasureSpec); // } else { // super.onMeasure(widthMeasureSpec, heightMeasureSpec); // } super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getMeasuredWidth(); int height = getMeasuredHeight(); int size = Math.min(width, height); setMeasuredDimension(size, size); }}
复制代码


用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
自定义View:布局