Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的GridView无法正确显示其所有项目_Android_Image_Gridview - Fatal编程技术网

Android中的GridView无法正确显示其所有项目

Android中的GridView无法正确显示其所有项目,android,image,gridview,Android,Image,Gridview,我正在尝试实现一个包含57项的自定义GridView。但只有前五幅图像显示正确,其余图像重复向下滚动。而向上滚动图像则会迷失方向 我要做什么才能正确显示57幅图像?多谢各位 Main.java Adapter.java main.xml row.xml 将图像绑定代码移出if-else条件,如下所示 @Override public View getView(int position, View convertView, ViewGroup parent) { Vie

我正在尝试实现一个包含57项的自定义GridView。但只有前五幅图像显示正确,其余图像重复向下滚动。而向上滚动图像则会迷失方向

我要做什么才能正确显示57幅图像?多谢各位

Main.java

Adapter.java

main.xml

row.xml


将图像绑定代码移出if-else条件,如下所示

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        final RecordHolder holder;

        if (convertView == null) {

            view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
            holder = new RecordHolder();
            holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
            holder.imageItem.setLayoutParams(params);

            view.setTag(holder);

        } else {
            holder = (RecordHolder) view.getTag();
        }

            holder.imageItem.setImageResource(imagenes[position]);
        return view;
    } 

@很好。。别忘了接受答案,以备将来参考
private Activity context;
private int[] imagenes;

public GridViewImageAdapter(Activity context, int[] imagenes) {

    super();

    this.context = context; 
    this.imagenes = imagenes;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;
    final RecordHolder holder;

    if (convertView == null) {

        view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
        holder = new RecordHolder();

        holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
        holder.imageItem.setImageResource(imagenes[position]);

        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
        holder.imageItem.setLayoutParams(params);

        view.setTag(holder);

    } else {
        holder = (RecordHolder) view.getTag();
    }

    return view;
} 

private class RecordHolder {
    ImageView imageItem;
}

public int getCount() {
    return imagenes.length;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return position;
}
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <GridView
        android:id="@+id/participar_gridview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:listSelector="#FFFFFFFF" >
    </GridView>

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
    android:id="@+id/participar_gridview_imagen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="centerCrop"/>

</RelativeLayout>
 @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        final RecordHolder holder;

        if (convertView == null) {

            view = context.getLayoutInflater().inflate(R.layout.gridview_row, null);
            holder = new RecordHolder();
            holder.imageItem = (ImageView) view.findViewById(R.id.participar_gridview_imagen);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(Utils.anchoPantalla(context) / 2, Utils.anchoPantalla(context) / 2);
            holder.imageItem.setLayoutParams(params);

            view.setTag(holder);

        } else {
            holder = (RecordHolder) view.getTag();
        }

            holder.imageItem.setImageResource(imagenes[position]);
        return view;
    }