我有一个 viewPager 有 4 个需要调整大小的图像。我实现了不同的选项,但没有选项运行。我写了不同的选项:
在 getView 中:
image.setImageBitmap(bitmap);
位图获得:
BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(bitmapOriginal, null, options); int sampleSize = 1; while ((options.outHeight > 600 * sampleSize) &&(options.outWidth > 400 * sampleSize)) { sampleSize *= 2; } options.inJustDecodeBounds = false; options.inMutable = false; options.inSampleSize = sampleSize; Bitmap bm=BitmapFactory.decodeStream(bimapOriginal, null, options);
但它非常缓慢。
我将最后一个代码放在 AsyncTask() 中,但无法快速滚动。
我覆盖
onPageScrollStateChange(int state)
我只在状态为时显示图像,
SCROLL_STATE_IDLE
但效果与其他情况相同。我使用 LruCache,我将图像保存在 Asynctask 中的 LruCache 中。
在我把 instanceItemfor(int i=position *4;i<(position +1)*4 +4;i++) { //NameImage is an Array with the name of image. Every time that calling instantiateItem save 4 images in LruCache new BitmapWorkerTask(nameImage[i).executorOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null);
但问题与上一个案例相同,我无法快速滚动,应用程序也很慢。
我有质量和尺寸都很大的图像。如何在 viewPager 中快速滚动?