我的应用中有一个相册功能,用户可以在相册的每一页中拍摄/拍摄图像。
用户正在挑选的照片将被复制到特定文件夹(该专辑独有),并将以该专辑的页面命名(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;
}
}
答案 0 :(得分:1)
您发布的代码中没有任何内容可能会导致此问题。但是在实例化适配器之前如何排序某些数组呢?或者让适配器对接收的数组进行排序。