2014-09-13 2 views
0

У меня есть функция альбома в моем приложении, что пользователь может принимать/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; 
    } 
} 
+1

В коде, который вы опубликовали, ничего не может произойти. Но как насчет сортировки некоторых массивов, прежде чем создавать экземпляр адаптера? Или пусть адаптер сортирует полученные массивы. – greenapps

+0

@greenapps вы можете объяснить больше или даже пример кода в ответе, пожалуйста? Благодарю. –

+0

Где вам нужно дополнительное разъяснение? – greenapps

ответ

1

Там нет ничего в коде, публикуемую, которые могли бы привести к этому. Но как насчет сортировки некоторых массивов, прежде чем создавать экземпляр адаптера? Или пусть адаптер сортирует полученные массивы.

Смежные вопросы