0

私は、simpleAdapterを介してリストビューにイメージとテキストを表示するためにHashMapを使用しています。今これは私のR.drawableからの画像でうまく動作します。しかし、イメージをリモートソースからビットマップとして取得するとすぐに、イメージは表示されません。画像が正しくダウンロードされており、画像ビューに表示するときれいに表示されます。イメージを取得してビットマップ変数に格納するコードは次のとおりです。リストビューにリモートイメージが表示されない

user_picture=(ImageView)findViewById(R.id.widget89); 
    java.net.URL img_value = null; 
    try { 
     img_value = new java.net.URL("http://graph.facebook.com/XXXXXXX/picture?type=small"); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    try { 
     mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    user_picture.setImageBitmap(mIcon1); 

これは何が起こっているのですか?

package com.octoshape.android.octopocplayer.playlist; 

import java.io.BufferedInputStream; 
import java.io.IOException; 
import java.net.URL; 
import java.net.URLConnection; 

import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.AsyncTask; 

public class BitmapDownloader extends AsyncTask<String, Void, Bitmap>{ 

    @Override 
    protected Bitmap doInBackground(String... urls) { 
     try { 
      URL url = new URL(urls[0]); 
      URLConnection conn = url.openConnection(); 
      conn.connect(); 
      BufferedInputStream bis = new BufferedInputStream(conn.getInputStream()); 
      Bitmap bm = BitmapFactory.decodeStream(bis); 
      bis.close(); 
      return bm; 
     } catch (IOException e) {} 
      return null; 
    } 
} 

:最近のプロジェクトには、事前 Jannik

答えて

0

おかげで、私は、ビットマップを取得し、カスタムオブジェクトにこれらを格納し、アダプタを使用してリストビューを移入するためにこれらを使用するため、以下のクラスを使用していましたここにアダプタがあります:

private class VideoAdapter extends BaseAdapter { 

     @Override 
     public int getCount() { 
      return playList.size(); 
     } 

     @Override 
     public Object getItem(int position) { 
      return playList.get(position); 
     } 

     @Override 
     public long getItemId(int position) { 
      return position; 
     } 

     @Override 
     public int getViewTypeCount() { 
      return ITEM_VIEW_TYPE_COUNT; 
     } 

     @Override 
     public int getItemViewType(int position) { 
      return (playList.get(position) instanceof String) ? ITEM_VIEW_TYPE_CHANNELSET 
        : ITEM_VIEW_TYPE_CHANNEL; 
     } 

     @Override 
     public boolean isEnabled(int position) { 
      // A separator cannot be clicked ! 
      return getItemViewType(position) != ITEM_VIEW_TYPE_CHANNELSET; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      final int type = getItemViewType(position); 

      // First, let's create a new convertView if needed. You can also 
      // create a ViewHolder to speed up changes if you want ;) 
      if (convertView == null) { 
       final LayoutInflater inflater = LayoutInflater 
         .from(DemoPlayer.this); 
       final int layoutID = type == ITEM_VIEW_TYPE_CHANNELSET ? R.layout.separator_list_item 
         : R.layout.video_list_item; 
       convertView = inflater.inflate(layoutID, parent, false); 
      } 

      // We can now fill the list item view with the appropriate data. 
      if (type == ITEM_VIEW_TYPE_CHANNELSET) { 
       ((TextView) convertView).setText((String) getItem(position)); 
      } else { 
       final Channel channel = (Channel) getItem(position); 
       ((TextView) convertView.findViewById(R.id.name)) 
         .setText(channel.getName()); 
       ((ImageView) convertView.findViewById(R.id.logo)) 
         .setImageResource(R.drawable.default); 

       if (channel.getChannelImage() != null) 
        ((ImageView) convertView.findViewById(R.id.channellogo)) 
          .setImageBitmap(channel.getChannelImage()); 
      } 
      return convertView; 
     } 
    } 
関連する問題