使GridView项目变为正方形

我希望我的物品GridView摆正。有两列,项目宽度为fill_parent(例如,它们占用尽可能多的水平空间。项目是自定义视图。

如何使物品的高度等于其可变宽度?


LEATH
浏览 588回答 3
3回答

aluckdog

拉伸GridView列时,有一个更简单的解决方案。只需使用以下方法覆盖GridView项布局的onMeasure即可:@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    super.onMeasure(widthMeasureSpec, widthMeasureSpec);}

qq_笑_17

或者,如果您想扩展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。
打开App,查看更多内容
随时随地看视频慕课网APP