2014-09-13 84 views
0

我在我的應用程序中有一個相冊功能,用戶可以在相冊的每個頁面中拍攝/照片圖像。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

您發佈的代碼中沒有任何內容會導致此問題。但是在實例化適配器之前如何對某些數組進行排序呢?或讓適配器對收到的陣列進行排序。 – greenapps 2014-09-13 07:54:50

+0

@greenapps你能解釋更多甚至是一個示例代碼嗎?謝謝。 – 2014-09-13 07:56:22

+0

你需要額外澄清的地方? – greenapps 2014-09-13 07:59:24

回答

1

沒有什麼在你張貼,可能會導致該代碼。但是在實例化適配器之前如何對某些數組進行排序呢?或讓適配器對收到的陣列進行排序。