我是編程廣告的新手我在我的第一個應用程序,所以請原諒我的無知......還有我的英語。Android - GridView中的ViewHolder不能正常工作
我有一個GridView與圖像,我試圖實現一個ViewHolder來提高性能。
這是代碼。 XML爲ImageView的尺寸:
<ImageView
android:layout_width="wrap_content"
android:layout_height="@dimen/grid_view_item_height"
android:id="@+id/immagineGriglia" />
和imageAdapter的Java代碼:
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ImageAdapterAdulti15 extends ArrayAdapter {
private Context context;
private int layoutResourceId;
private ArrayList data = new ArrayList();
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.image1, R.drawabla.image2........
};
// Constructor
public ImageAdapterAdulti15(Context context, int layoutResourceId, ArrayList data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View cella = convertView;
ViewHolder holder = null;
if (cella == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
cella = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.immagineGriglia = (ImageView) cella.findViewById(R.id.immagineGriglia);
cella.setTag(holder);
} else {
holder = (ViewHolder) cella.getTag();
}
ImageItem item = (ImageItem) data.get(position);
holder.immagineGriglia.setImageBitmap(item.getImage());
return cella;
}
static class ViewHolder {
ImageView immagineGriglia;
}
}
但有了這個代碼在GridView比以前更慢,沒有ViewHolder。
我認爲這個代碼不正確或不完整。 有人可以幫助解決它嗎? 謝謝...
嘗試以異步方式加載bitamp請查看:http://www.coderzheaven.com/2013/09/01/faster-loading-images-gridviews-listviews-android-menory-caching-complete-實施樣本代碼/或http://developer.android.com/training/displaying-bitmaps/process-bitmap.html –