我在我的應用程序中有一個相冊功能,用戶可以在相冊的每個頁面中拍攝/照片圖像。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;
}
}
您發佈的代碼中沒有任何內容會導致此問題。但是在實例化適配器之前如何對某些數組進行排序呢?或讓適配器對收到的陣列進行排序。 – greenapps 2014-09-13 07:54:50
@greenapps你能解釋更多甚至是一個示例代碼嗎?謝謝。 – 2014-09-13 07:56:22
你需要額外澄清的地方? – greenapps 2014-09-13 07:59:24