2012-12-10 99 views
0

我有一些圖像存儲在內部存儲器中。我設法檢索圖像文件位置並對其進行解碼。但我無法設法讓它顯示在gridview中。由於目前沒有錯誤,我不確定代碼有什麼問題。任何意見將不勝感激。無法在gridview中顯示圖像(內部存儲)

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.web_tab); 
    helper = new DBHelper(this); 
    Object[] values = helper.get_contentByEmailID(EMAIL); 
    this.arrPath = new String[this.count]; 
    this.thumbnailsselection = new boolean[this.count]; 

    Log.i(TAG, "values:" +values); 
    Log.i(TAG, "filepath:" +values[0]); 
    Log.i(TAG, "filepath:" +values[1]); 
    Log.i(TAG, "values:" +values.length); 

    if(values.length>0){ 
     for (int i=0;i<values.length;i++){ 
      Log.i(TAG, "values[]" +values[i]); 
      String bImage = (String) values[i]; 
      bitmap = new Bitmap [this.count]; 
      bitmap = decodeFile(bImage); 


      Log.i(TAG, "bImage"+i+":" +bImage); 
      Log.i(TAG, "bitmap"+i+":" +bitmap); 
     } 
    } 
    else{ 
     Log.i(TAG, "Unable to locate images"); 
    } 


    imagegrid = (GridView) findViewById(R.id.WebImageGrid); 
    imageAdapter = new ImageAdapter(); 
    imagegrid.setAdapter(imageAdapter); 


} 

以下是ImageAdapter代碼。

public class ImageAdapter extends BaseAdapter 
{ 
    private Context mContext;  
    Bitmap[] mImageArray; 
    private LayoutInflater mInflater; 

    public ImageAdapter() { 
     mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 
    @Override 
    public int getCount() { 
     return count; 
    } 
    public Object getItem(int position) 
    { 
      return position; 
    } 
    public long getItemId(int position) 
    { 
      return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     if (convertView == null) { 
      holder = new ViewHolder(); 
      convertView = mInflater.inflate(
        R.layout.galleryitem, null); 
      holder.imageview = (ImageView) convertView.findViewById(R.id.thumbImage); 
      holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox); 

      convertView.setTag(holder); 
     } 
     else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.checkbox.setId(position); 
     holder.imageview.setId(position); 


     holder.imageview.setImageBitmap(bitmap[position]); 
     holder.checkbox.setChecked(thumbnailsselection[position]); 
     holder.id = position; 
     return convertView; 
    } 
} 
class ViewHolder { 
    ImageView imageview; 
    CheckBox checkbox; 
    int id; 
}    

public Bitmap[] decodeFile(String filePath) 
{ 
    System.out.println("filepath in decode file .. "+filePath); 
    BitmapFactory.Options o = new BitmapFactory.Options(); 
    o.inJustDecodeBounds = true; 
    BitmapFactory.decodeFile(filePath, o); 

    return bitmap; 
} 

UPDATE

Object[] values = helper.get_wbm_synccontentByEmailID(SettingConstant.EMAIL); 
    count=values.length; 
    this.arrPath = new String[count]; 
    this.thumbnailsselection = new boolean[count]; 
    Log.i(TAG, "values:" +values.length); 
    String bImage; 
    if(count>0){ 
     bitmap = new Bitmap [count]; 

     for (int i=0;i<count;i++){ 
      Log.i(TAG, "values[]" +values[i]); 
      bImage = (String) values[i]; 
      Bitmap newBitmap = decodeFile(bImage); 
      this.arrPath[i] = bImage; 
      this.bitmap[i] = newBitmap; 

     } 



    public Bitmap decodeFile(String filePath) 
{ 
    System.out.println("filepath in decode file .. "+filePath); 
    Bitmap bitmapnew = BitmapFactory.decodeFile(filePath); 

    return bitmapnew; 
} 
+0

你是否獲得所有網格物品的相同圖像?這是你的問題嗎? –

+0

nope ..對不起,我沒有提到我得到..它沒有顯示任何東西在屏幕上.. –

+0

變量計數的值是什麼? –

回答

1

有這個

decodeFile(String filePath)一目瞭然返回未在其中修改的位圖。 所以我認爲位圖並沒有改變(只是返回null)。

  1. 您正在傳遞一個文件路徑並返回一個位圖數組。你會得到一個位圖圖像並將其作爲一個位圖數組傳遞。

2.使用bitmap[i] = decodeFile(bImage);代替位圖= decodeFile(bImage);

3.change的decodeFile(String filePath)簡單地bitmap

4.使用return BitmapFactory.decodeFile(filePath,o);代替該位圖return type

+0

對不起,對於遲到的答覆..我解決了無法顯示圖像部分通過刪除BitmapFactory.options。但是我還是遇到了另一個問題,在我的gridview中有3個空插槽,然後是我的圖像。不知道什麼是錯的 –

+0

你能更新你做了什麼改變嗎 –

+0

我更新了它。現在的問題是,在gridview中顯示的圖像非常長。就像圖像的高度一樣。圖像顯示不是標準的。高度和寬度都不同。 –

0

我想你想從getView返回什麼是持有人,而不是轉換視圖

+1

我認爲這可能不是問題。我也試過了。 –

相關問題