ListView自动更改背景

时间:2015-02-16 10:16:33

标签: android android-listview

我有一个ListView,其中我从ImageView对象内的服务器加载图像,然后将我的布局对象背景设置为此imageview(行列表背景)。但是,当我滚动列表时,每行的背景都会发生变化而不是固定的。当我滚动时,如何使背景不改变。

MyArrayAdapter.java

@Override
  public View getView(int position, View convertView, ViewGroup parent){

    if (convertView == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        convertView = inflater.inflate(resourceId, parent, false);
    }

    ImageView imageBackground = (ImageView) convertView.findViewById(R.id.imageBKG);

    RelativeLayout rowmall = (RelativeLayout) convertView.findViewById(R.id.row_mallx);
    rowmall.setBackground(imageBackground.getDrawable());

    ImageLoader.getInstance().displayImage(mall.iconWide, imageBackground, Utility.displayImageOptions);

    return convertView;
  }

row_listview.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/row_mallx"
   android:layout_width="match_parent"
   android:layout_height="155dp">

     ......
   <ImageView
    android:id="@+id/imageBKG"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:scaleType="fitXY"
    android:visibility="invisible" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题所以我设置了这样的显示选项:

displayImageOptions = new DisplayImageOptions.Builder()
                .cacheInMemory(true).showImageOnLoading(R.drawable.placeholder)
                .showImageForEmptyUri(R.drawable.placeholder)
                .showImageOnFail(R.drawable.placeholder).cacheOnDisk(true)
                .considerExifParams(true).bitmapConfig(Bitmap.Config.RGB_565)
                .build();

检查显示图像选项

ImageLoader.getInstance().displayImage(mall.iconWide, imageBackground, displayImageOptions);

答案 1 :(得分:0)

我相信您目前面临的问题是,在重复使用该行时,会显示上一个视图的背景,直到从互联网上获取实际的bg为止。

ImageView imageBackground = (ImageView) convertView.findViewById(R.id.imageBKG);之后,添加以下行:

imageBackground.setImageResource(0);    //this will empty the previously set bg