您好我正在創建一個android應用程序,並且我在我的網站上列出了超過1500張照片,我想使用陣列適配器在ListView上顯示 我找到了一個解決方案正在從我有的URL鏈接下載圖像。 這裏是堆棧跟蹤當從網站鏈接url檢索圖像時出現內存不足異常
我的問題是,我得到一個內存溢出異常
:E/AndroidRuntime(1123):致命異常:螺紋79 :E/AndroidRuntime(1123) :過程: android.quotations,PID:1123 **:E/AndroidRuntime(1123):java.lang.OutOfMemoryError:E/AndroidRuntime(1123): 在** android.graphics.BitmapFactory.nativeDecodeStream(母語方法) :E/AndroidRuntime(1123):在 android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:613) :E/AndroidRuntime(1123):在 android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:589) :E/AndroidRuntime(1123):在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422) :E/AndroidRuntime(1123):在 android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840) :E/AndroidRuntime(1123) :在 android.graphics.drawable.Drawable.createFromStream(Drawable.java:791) :E/AndroidRuntime(1123):在 com.c.fragments.AuthorImageFragment.loadImageFromWebOperations(AuthorImageFragment.java:77) :E/AndroidRuntime( 1123):at com.c.fragments.AuthorImageFragment.access $ 0(AuthorImageFragment.java:72) :E/AndroidRuntime(1123):at com.c.fragments.AuthorImageFragment $ 1.run(AuthorImageFragment.java:109)
,這裏是從適配器代碼:
private ImageView imageDetail(View v, int resId, Drawable drawable) {
ImageView value = (ImageView) v.findViewById(resId);
BitmapDrawable draw = (BitmapDrawable)drawable;
// value.setAdjustViewBounds(true);
Bitmap bmp=draw.getBitmap();
// value.setLayoutParams(new android.widget.TableRow.LayoutParams((width/4), (height/4)));
value.setImageBitmap(bmp);
return value;
}
Thread networkThread = new Thread() {
@Override
public void run() {
Author author;
// This is just a test i want to do :)))
for (int i=0;i<=1000;i++){
author=new Author();
try {
author.setAuthorImage(loadImageFromWebOperations("http://mySite/Directory/images/"+5+".jpg",i));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list.add(author);
}
getActivity().runOnUiThread (new Runnable(){
public void run() {
adapter= new AuthorImageAdapter(getActivity().getApplicationContext(),list);
}
});
}
}; networkThread.start();
****這裏是我的方法用於檢索圖片****
private Drawable loadImageFromWebOperations(String url,int id) throws MalformedURLException, IOException
{ InputStream is=null;
try{
is = (InputStream) new java.net.URL(url).getContent();
LOGGER.info("Drawable -----");
Drawable d = Drawable.createFromStream(is, id+".jpg");
return d;
}catch (Exception e) {
// log Exception
LOGGER.info("Exception "+e.toString());
return null;
}
finally {
if (is!=null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
LOGGER.info("Exception "+e.toString());
// log Exception
return null;
}
}
}
}
任何幫助將不勝感激.. 最好的問候:))) 現在來幫助更多我將添加我用來檢索圖像的代碼。