为了账号安全,请及时绑定邮箱和手机立即绑定

使GridView项目变为正方形

使GridView项目变为正方形

LEATH 2019-12-18 16:43:31
我希望我的物品GridView摆正。有两列,项目宽度为fill_parent(例如,它们占用尽可能多的水平空间。项目是自定义视图。如何使物品的高度等于其可变宽度?
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

拉伸GridView列时,有一个更简单的解决方案。只需使用以下方法覆盖GridView项布局的onMeasure即可:


@Override

public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    super.onMeasure(widthMeasureSpec, widthMeasureSpec);

}


查看完整回答
反对 回复 2019-12-18
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

或者,如果您想扩展View,只需执行一些非常简单的操作即可:


public class SquareImageView extends ImageView

{


    public SquareImageView(final Context context)

    {

        super(context);

    }


    public SquareImageView(final Context context, final AttributeSet attrs)

    {

        super(context, attrs);

    }


    public SquareImageView(final Context context, final AttributeSet attrs, final int defStyle)

    {

        super(context, attrs, defStyle);

    }



    @Override

    protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec)

    {

        final int width = getDefaultSize(getSuggestedMinimumWidth(),widthMeasureSpec);

        setMeasuredDimension(width, width);

    }


    @Override

    protected void onSizeChanged(final int w, final int h, final int oldw, final int oldh)

    {

        super.onSizeChanged(w, w, oldw, oldh);

    }

}

值得注意的super.onMeasure()是不需要。onMeasured要求是您必须致电setMeasuredDimension。


查看完整回答
反对 回复 2019-12-18
  • 3 回答
  • 0 关注
  • 584 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信