2012-07-15 2 views
0

ListView에서 URL의 이미지를 표시하는 데 여러 가지 방법을 사용했지만 검색을 시도했지만 코드를 작동시킬 수 없습니다. 아래 코드를 이미지를 다운로드하여 ListView에 표시하지만 어떻게 든 작동하지 않습니다.안드로이드 - 어떻게 ListView에 URL에서 이미지를 표시하려면?

private Drawable LoadImageFromWebOperations(String url) 
    { 
     try 
     { 
      InputStream is = (InputStream) new URL(url).getContent(); 
      Drawable d = Drawable.createFromStream(is, "src name"); 
      return d; 
     } 
     catch (Exception e) 
     { 
      return null; 
     } 
    } 

그리고 여기에 내가지도에 넣어 이후 위의 함수를

Drawable image = LoadImageFromWebOperations("http://10.0.0.5/images/logo.jpg"); 

를 호출하고 "productsList"라는 ArrayList를로지도를 넣어 내 코드입니다

map.put("avatar", image); 
productsList.add(map); 

그리고 마지막으로 SimpleAdapter를 사용하여 ListView에 HashMap을 표시합니다.

ListAdapter adapter = new SimpleAdapter(
    Home.this, productsList, 
    R.layout.list_item, new String[] { TAG_PID, 
    TAG_NAME, "url", "avatar"}, 
    new int[] { R.id.pid, R.id.name, R.id.url, R.id.avatar }); 

내 응용 프로그램은 이미지를 제외한 모든 것을 보여줍니다. Google에서이 문제를 검색했지만 도움을 얻을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

LoadImageFromWebOperation s는 null을 반환하지 않습니까? – tiguchi

+0

@ 노부 예, 결과를 TextView에 인쇄했는데 [email protected]_과 같은 것을주었습니다. – user1526938

답변

0

이 확실히 도움이 될 것입니다,

CustomAdapter adapter = new CustomAdapter(Home.this, productsList, R.layout.list_item, 
new String[] { TAG_PID,TAG_NAME, "url", "avatar"}, 
new int[] { R.id.pid, R.id.name, R.id.url, R.id.avatar }); 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    View v = super.getView(position, convertView, parent); 
    HashMap<String, Object> hm = (HashMap<String, Object>) super.getItem(position); 
    ImageView image = (ImageView) v.findViewById(R.id.yourImageID); 
    TextView txt1 = (TextView) v.findViewById(R.id.yourtxtID1); 
    TextView txt2 = (TextView) v.findViewById(R.id.yourtxtID2); 
    TextView txt3 = (TextView) v.findViewById(R.id.yourtxtID3); 


    image.setImageDrawable((Drawable) hm.get("avatar")); 
    txt1.setText(hm.get("TAG_PID").toString()); 
    txt2.setText(hm.get("TAG_NAME").toString()); 
    txt3.setText(hm.get("url").toString()); 

    return v; 

} 

이 문제가 계속 지속되면 알려줘의의 getView() 메소드를 오버라이드 (override), SimpleAdapter를 확장하는 CustomAdapter 클래스를 만듭니다.

1
try 

if (image != null) { 

       Bitmap bitimage = null; 
       BitmapFactory.Options options = new BitmapFactory.Options(); 
       options.inSampleSize = 1; 
       try { 

              //bitimage = BitmapFactory.decodeStream((InputStream) new URL(data.getThumbnail().toString().trim().toString()).getContent(), null, options); 
              bitimage = BitmapFactory.decodeStream((InputStream) new URL(ed).getContent(), null, options); 
        image.setImageBitmap(bitimage); 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 
관련 문제