データを正しくロードしてスムーズな Gridview があります。私が直面している問題は、ユーザーが任意のペースで Gridview をスクロールすると、UI で画像が変化するのを見ることができるということです。画像は最終的に適切な場所に配置されますが、ユーザーにとって美的にはあまり適していません。私は何が間違っているのか、きれいなスクロールを得るために何ができるのか疑問に思っていました. Universal Image Loader と Cursor Loader を使用していることに注意してください。私のアダプターコードは以下に掲載されています。
class VideoAdapter extends CursorAdapter {
Context context;
private static final String TAG = "Checking Database";
ImageLoaderConfiguration config;
public VideoAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
this.context = context;
config = new ImageLoaderConfiguration.Builder(context)
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.imageDownloader(new BaseImageDownloader(context))
.build();
DisplayImageOptions defaultOptions =
new DisplayImageOptions.Builder()
.cacheOnDisc()
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoader.getInstance().init(config);
Log.i(TAG, "at thconstructore end of the the ");
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
int videoid = cursor.getColumnIndex(GridviewData.ROWID);
int videopath = cursor.getColumnIndex(GridviewData.VIDEOFILEPATH);
String rowid = cursor.getString(videoid);
String filepath = cursor.getString(videopath);
//This background thread downloads/looks for the bitmap and sets it to the view
BitmapDownloader bitdl = new BitmapDownloader(rowid, filepath, holder.imageview);
bitdl.execute();
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View eachgrid = inflater.inflate(R.layout.eachgrid, parent, false);
ViewHolder holder = new ViewHolder();
holder.imageview = (ImageView) eachgrid
.findViewById(R.id.Imageview1);
eachgrid.setTag(holder);
return eachgrid;
}
ご協力いただきありがとうございます。