GridView无法正确加载?

时间:2014-09-13 06:36:29

标签: android gridview

我的应用中有一个相册功能,用户可以在相册的每一页中拍摄/拍摄图像。

用户正在挑选的照片将被复制到特定文件夹(该专辑独有),并将以该专辑的页面命名(0.jpg,1.jpg等)。

为了更好地显示,我为每张专辑添加了gridview布局,该布局将调整sdcard上该专辑文件夹中的所有图像。现在我的问题是gridview没有以正确的方式调整图像。例如,如果我在该文件夹中有4个图像,其中0.jpg到3.jpg,它将在第一个项目中加载1.jpg,然后在第二个项目中加载3.jpg,依此类推。如果我点击任何图片并转到该特定页面(我通过gridview onclick中的position int获取页码),它将显示正确的照片,但不会显示在gridview中。例如,它将在gridview中的位置1加载2.jpg,但如果我点击它将在该页面中显示1.jpg。

顺便说一下,我在不同的设备上测试了这个问题,其中一些问题并没有发生,但并非所有问题都发生了,我不能确定我的用户设备是什么。

Gridview适配器类:

public class GridViewAdapter extends BaseAdapter {

    private Activity activity;
    private String[] filepath;
    private String[] filename;

    private static LayoutInflater inflater = null;

    public GridViewAdapter(Activity a, String[] fpath, String[] fname) {
        activity = a;
        filepath = fpath;
        filename = fname;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

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

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {         
        // TODO Auto-generated method stub
        ImageView i = new ImageView(activity);
        Bitmap bmp = Helper.decodeFile(filepath[position], activity, 128);
        i.setLayoutParams(new GridView.LayoutParams(70, 70));
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        i.setImageBitmap(bmp);
        return i;
    }
}

1 个答案:

答案 0 :(得分:1)

您发布的代码中没有任何内容可能会导致此问题。但是在实例化适配器之前如何排序某些数组呢?或者让适配器对接收的数组进行排序。