AlbumAdapter.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:2k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex09_08;
  2. /* import相关class */
  3. import java.net.URL;
  4. import java.net.URLConnection;
  5. import java.util.List;
  6. import android.content.Context;
  7. import android.graphics.Bitmap;
  8. import android.graphics.BitmapFactory;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.BaseAdapter;
  13. import android.widget.ImageView;
  14. import android.widget.TextView;
  15. /* 自定义的Adapter,继承android.widget.BaseAdapter */
  16. public class AlbumAdapter extends BaseAdapter
  17. {
  18.   private LayoutInflater mInflater;
  19.   private List<String[]> items;
  20.   public AlbumAdapter(Context context,List<String[]> it)
  21.   {
  22.     mInflater = LayoutInflater.from(context);
  23.     items = it;
  24.   }
  25.   
  26.   /* 因继承BaseAdapter,需覆盖以下method */
  27.   @Override
  28.   public int getCount()
  29.   {
  30.     return items.size();
  31.   }
  32.   @Override
  33.   public Object getItem(int position)
  34.   {
  35.     return items.get(position);
  36.   }
  37.   
  38.   @Override
  39.   public long getItemId(int position)
  40.   {
  41.     return position;
  42.   }
  43.   
  44.   @Override
  45.   public View getView(int position,View conView,ViewGroup par)
  46.   {
  47.     ViewHolder holder;
  48.     
  49.     if(conView == null)
  50.     {
  51.       /* 使用自定义的album作为Layout */
  52.       conView = mInflater.inflate(R.layout.album, null);
  53.       /* 初始化holder的text与image */
  54.       holder = new ViewHolder();
  55.       holder.text = (TextView) conView.findViewById(R.id.myText);
  56.       holder.image = (ImageView)conView.findViewById(R.id.myImage);
  57.       conView.setTag(holder);
  58.     }
  59.     else
  60.     {
  61.       holder = (ViewHolder) conView.getTag();
  62.     }
  63.     /* 设置相簿名称 */
  64.     String[] tmpS=(String[])items.get(position);
  65.     holder.text.setText(tmpS[2]);
  66.     /* 设置相簿照片 */
  67.     URL url;
  68.     try
  69.     {
  70.       url = new URL(tmpS[1]);
  71.       URLConnection conn = url.openConnection(); 
  72.       conn.connect(); 
  73.       Bitmap bm = BitmapFactory.decodeStream(conn.getInputStream());
  74.       holder.image.setImageBitmap(bm);
  75.     } catch (Exception e)
  76.     {
  77.       e.printStackTrace();
  78.     } 
  79.     return conView;
  80.   }
  81.   
  82.   private class ViewHolder
  83.   {
  84.     /* text :相簿名称
  85.      * image:相簿照片 */
  86.     TextView text;
  87.     ImageView image;
  88.   }
  89. }