I want to create a list view with different images and text on each row.I created array for text and images but i am not getting how to do it further?
            Asked
            
        
        
            Active
            
        
            Viewed 3,701 times
        
    0
            
            
        - 
                    May be this link helps you. http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/ – Mudassir Mar 08 '11 at 11:46
- 
                    You should try to use the search feature on this site before asking a new question. Here you can find a nice answer with all the source code provided: [Listview with images](http://stackoverflow.com/questions/541966/android-how-do-i-do-a-lazy-load-of-images-in-listview/3068012#3068012) – Adinia Mar 08 '11 at 11:55
1 Answers
0
            
            
          ListView list=(ListView)findViewById(android.R.id.list);
  list.setAdapter(new EfficientAdapter(this));
  String[] alltext={..............};
  String[] alImages={..........};
private static class EfficientAdapter extends BaseAdapter 
{
   private LayoutInflater mInflater;
   public EfficientAdapter(Context context) 
   {
   mInflater = LayoutInflater.from(context);
   }
   public int getCount() 
   {
   return alltext.length;
   }
   public Object getItem(int position) 
   {
   return position;
   }
   public long getItemId(int position) 
   {
       return position;
   }
   public View getView(int position, View convertView, ViewGroup parent) 
   {
   ViewHolder holder;
   if (convertView == null) 
   {
   convertView = mInflater.inflate(R.layout.images, null);
   holder = new ViewHolder();
   holder.title = (TextView) convertView.findViewById(R.id.title);
   holder.image = (ImageView) convertView.findViewById(R.id.image);
   convertView.setTag(holder);
   } 
   else 
   {
   holder = (ViewHolder) convertView.getTag();
   }
   holder.title.setText(alltext[position]);    
   holder.image.setImageBitmap(loadImageFromUrl(allImges[position]));
   return convertView;
   }
   static class ViewHolder 
   {
   TextView title;
   ImageView image;
   }
   }
If you have image urls then use loadImageFromUrl() method or in drawble folder use this one
   holder.image.setImageResource(allImges[position]);
The loadImageFromUrl method is
public static  Bitmap loadImageFromUrl(String url) {
    InputStream inputStream;Bitmap b,result;
    try {
          if(url.contains(" ")){
                url=url.replace(" ", "%20");
                  }
            inputStream = (InputStream) new URL(url).getContent();
            BitmapFactory.Options bpo=  new BitmapFactory.Options();
            bpo.inJustDecodeBounds = true;
            bpo.inJustDecodeBounds = false; 
            if(bpo.outWidth>500){ 
            bpo.inSampleSize = 8; 
            b=BitmapFactory.decodeStream(inputStream, null,bpo );
    } 
    else
    {
        bpo.inSampleSize=2;
        b=BitmapFactory.decodeStream(inputStream, null,bpo );
    }
             return  b;
    } catch (IOException e) {
            throw new RuntimeException(e);
        }
}
The images.xml is
  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="2sp">
  <TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginLeft="45px"
 />
  <LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/image"
android:layout_width="35px"
android:layout_height="wrap_content"
android:layout_marginLeft="2px"/>
  </LinearLayout>
  </RelativeLayout>
 
    
    
        Ramakrishna
        
- 4,066
- 16
- 48
- 72
