У меня есть функция альбома в моем приложении, что пользователь может принимать/pic-изображения на каждой странице альбома.GridView не загружается должным образом?
Фотографии, которые будут выбраны пользователем, будут скопированы в определенную папку (которая принадлежит исключительно этому альбому) и будут называться со страницей этого альбома (0.jpg, 1.jpg и т. Д.).
для отображения лучше, я добавил макет сетки для каждого альбома, который будет адаптировать все изображения из этой папки альбома на SD-карте. теперь Моя проблема в том, что gridview не адаптирует изображение правильно. например, если у меня есть 4 изображения в этой папке с 0.jpg до 3.jpg, он будет загружать 1.jpg в первый элемент, затем 3.jpg в секунду и так далее. Если я нажму на любые изображения и перейду на эту страницу (я получаю номер страницы через position
int в gridview onclick), он покажет правильную фотографию, но не в gridview. например, он будет загружать 2.jpg в позицию 1 в gridview, но если я нажму на это, он покажет 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;
}
}
В коде, который вы опубликовали, ничего не может произойти. Но как насчет сортировки некоторых массивов, прежде чем создавать экземпляр адаптера? Или пусть адаптер сортирует полученные массивы. – greenapps
@greenapps вы можете объяснить больше или даже пример кода в ответе, пожалуйста? Благодарю. –
Где вам нужно дополнительное разъяснение? – greenapps