自定义View-修改控件尺寸(HenCoder Android UI 部分 2-1 布局基础作业)

本文主要是自己学习的笔记,想学习的建议直接去看HenCoder视频教学地址
作业内容:将下半部分实现与上半部分相同的效果

《自定义View-修改控件尺寸(HenCoder Android UI 部分 2-1 布局基础作业)》 preview.gif

作业原地址:
课程作业地址

交作业地址:
交作业

实现代码:

    /**
     * 重写 onMeasure(),调整尺寸,让 ImageView 总是正方形
     */
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        // 先用 getMeasuredWidth() 和 getMeasuredHeight() 取到 super.onMeasure() 的计算结果
        int width = getMeasuredWidth();
        int height = getMeasuredHeight();

        // 然后通过计算,让宽度和高度一致
        width = Math.min(width, height);
        height = Math.min(width, height);

        // 再用 setMeasuredDimension(width, height) 来保存最终的宽度和高度
        setMeasuredDimension(width, height);
    }

布局中的图片宽高都是match_parent,scaleType是centerCrop,这里要修改宽高为其中小的那一个,所以要在onMeasure中先调用super.onMeasure, 获得之前的宽高,然后修改。注意:不要忘记调用setMeasuredDimension

感谢HenCoder

    原文作者:CoderYuZ
    原文地址: https://www.jianshu.com/p/682e73414d4d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞