自定义 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);
}
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 2
Changing Lin
关注
获得机遇的手段远超于固有常规之上~ 2020.04.29 加入
我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。
评论