我有一个列表视图,显示时间表。我想为每一行添加一个图像。我怎么能这样做?
这是我正在使用的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
这是适配器:
ListView list = (ListView) v.findViewById(R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, times);
list.setAdapter(adapter);
答案 0 :(得分:0)
在这里,我使用下面的布局文件用一个ImageView和三个TextView填充Listview。 这里当我们有listview图像然后我们在android中异步下载图像。然后从url创建位图并将其设置为imageview .so当你使用图像然后首先从url逐字节读取数据和图像有更多的咬文本,因此需要花时间加载listview。
<ImageView
android:id="@+id/image"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:background="#444"
android:padding="3dp" />
<TextView
android:id="@+id/tvtitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_toLeftOf="@+id/tvdate"
android:layout_toRightOf="@+id/image"
android:maxLines="1"
android:text="title"
android:textColor="@android:color/black"
android:textSize="15dip"
android:textStyle="bold" />
<TextView
android:id="@+id/tvdesc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvtitle"
android:layout_toRightOf="@+id/image"
android:ellipsize="end"
android:maxLines="3"
android:text="desc"
android:textColor="@android:color/black"
android:textSize="13dip" />
<TextView
android:id="@+id/tvdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:layout_marginTop="5dip"
android:text="date"
android:textColor="@android:color/black"
android:textSize="12dip" />
这里我们有行,在Adapter类中有三个Textview和imageview.so,我们在getView()方法中为这一行充气。
LayoutInflater inflater =(LayoutInflater)活动 .getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.row,null);
现在我们使用Viewholder在listview中添加行,以便在android中获得流畅的listview。
public static class ViewHolder { public TextView tvTitle,tvDesc,tvDate; private ImageView imgView; }
现在为视图为null时为每一行创建ViewHolder的新对象。另外使用setTag(ViewHolder)将其设置为标记。
ViewHolder持有人; 如果(图== NULL){ holder = new ViewHolder(); view.setTag(保持器); } 其他{ holder =(ViewHolder)view.getTag(); }
现在使用viewHolder对象,您可以从row.xml重新构建您的视图。
holder.tvTitle =(TextView)view.findViewById(R.id.tvtitle); holder.tvDesc =(TextView)view.findViewById(R.id.tvdesc); holder.tvDate =(TextView)view.findViewById(R.id.tvdate); holder.imgView =(ImageView)view.findViewById(R.id.image);
我们可以在这里设置每个行视图的值。
holder.tvTitle.setText( “标题”); holder.tvDesc.setText( “标题”); holder.tvDate.setText( “标题”); holder.imgView.setImageResource(R.drawable.icon);
然后返回getView方法的语句是view。 返回视图;
http://samir-mangroliya.blogspot.in/p/android-image-listview.html