我在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]));
}
答案 0 :(得分:1)
这是因为您正在更改图像的来源而不是背景。这样做:
<ImageView
android:id="@+id/imagelist"
android:layout_width="100dp"
android:layout_height="70dp"
android:src="@drawable/ic_launcher"/>
答案 1 :(得分:1)
答案 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替换它。