内部ListView(ImageView不替换新图像)

时间:2016-01-12 14:08:11

标签: android listview imageview

我在ListView中有Imageview。我试图用代码替换图像。但新图像显示在旧图像上。 imageview中有两个图像。如何使用我从列表中的库中获取的新图像替换已在imageview中设置的旧图像。

的xml:

 <ImageView 
    android:id="@+id/imagelist"
    android:layout_width="100dp"
    android:layout_height="70dp"
    android:background="@drawable/ic_launcher"/>

Inside ListView(在imageview中设置图像的代码)

 @Override
public View getView(final int position, View convertView, ViewGroup parent) {
 Object[] imagelst=vehicle_imagePath.toArray();
  Holder1 holder1=new Holder1();
  View rowView1;
 holder1.image.setImageResource(0);
         holder1.image.setImageBitmap(BitmapFactory.decodeFile((String) imagelst[position]));
 }

3 个答案:

答案 0 :(得分:1)

这是因为您正在更改图像的来源而不是背景。这样做:

<ImageView 
android:id="@+id/imagelist"
android:layout_width="100dp"
android:layout_height="70dp"
android:src="@drawable/ic_launcher"/>

答案 1 :(得分:1)

应该使用android:src标签而不是android:background。 src是前景图像,正如名称所示,另一个是背景。

答案 2 :(得分:1)

您好,您可以通过

替换此行
holder1.image.setBackground(BitmapFactory.decodeFile((String) imagelst[position]));

这一个

holder1.image.setBackground(new BitmapDrawable(BitmapFactory.decodeFile((String) imagelst[position])));

xml

中的这一行
android:background="@drawable/ic_launcher"

由这一个..

android:src="@drawable/ic_launcher"

基本原因是你要将图像设置为背景,而在java代码中,你试图用src(source)替换它。所以它不会取代你的旧图像。 你必须使用background或src替换它。