我有一个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>
答案 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