2012-10-11 37 views
0

嗨,當我試圖此代碼dipaly從IMAGEURL圖像的GridView 它顯示空指針異常任何一個可以幫助我顯示在GridView的圖像: 我的代碼是如何從URL

public class Gridview extends Activity { 


public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_gridview); 

    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 
    } 
public class ImageAdapter extends BaseAdapter{ 


    private Context mContext; 
    private Integer[] mThumbIds; 
    public ImageAdapter(Context c) 
    { 
     mContext = c;  
    } 
public int getCount() { 
    return mThumbIds.length; 
} 
public Object getItem(int position) { 
    return position; 
} 
public long getItemId(int position) { 
    return position; 
} 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(45, 45)); 
     imageView.setAdjustViewBounds(false); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 
    imageView 
      .setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position)); 
    return imageView; 
} 
protected Drawable LoadImageFromWebOperations(String url) { 
    try { 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src name"); 
     return d; 
    } catch (Exception e) { 
     System.exit(0); 
     return null; 
    } 
} 

}  
+0

後logcat的消息 – Braj

+0

你不應該在getView UI線程上一個單獨的URL加載圖像。您應該通過AsyncTask獲取所有圖像並更新onPostExecute中的GridView。 – dennisdrew

回答

0

嘿檢查你的圖片下載網址。你爲什麼在該網址上添加位置?如果你有像mobile1,mobile2等許多圖像,那麼你應該在移動後追加位置,而不是在URL之後。

最重要的是,您不能像現在這樣在主UI線程上執行網絡操作。它可能適用於GingerBread和Pre-GingerBread設備,但不適用於以後的GingerBread設備。

只要參考這個link並以這種方式做。

0

您應該檢查網址,+位置會導致不正確的網址:

 

imageView.setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position));