Android 具有两列的 GridView 使用 JSON 解析

Android GridView with two colums using JSON parsing

我有一个 GridView,我正在尝试显示两列。我想将图像大小固定为 GridView。在本地,我的代码可以正常工作,但是当我加载 JSON 它时,"auto fit" 停止工作。

密码是:

public class SquareImageView extends ImageView{
public SquareImageView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}
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)
{
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); //Snap to width
}
}

使用 Below CustomImageView Class 并且您 xml 应该如下所示

public class CustomImageView extends ImageView {

    public CustomImageView(Context context) {
        super(context);
    }

    public CustomImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, widthMeasureSpec); // This is the key that will make the height equivalent to its width
    }
}

而你的Xml应该是这样的

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <com.yourpackage.CustomImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop" />

        </LinearLayout>