我已经设置了一个viewPager,它应该显示大约50张图像,分辨率为1500,2100px。图像由用户自己提供。所以,我需要缩减我与这段代码在图片:调整图像大小以适应ViewPager,outOfMemory异常
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
//imageFile is a string to the image location.
Bitmap bm = BitmapFactory.decodeFile(imagefile);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bm, width, height, true);
当图像被缩小的我把它添加到viewpager其中只有少数的图片,完美工作的数组列表。但现在我需要加载50张图片,我该怎么做?即使在缩小图像后,我仍然会看到内存错误。
的图像添加使用此代码(在ViewPager):
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
//int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
//imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//imageView.setImageResource(pages.get(position));
imageView.setImageBitmap(pages.get(position));
((ViewPager) container).addView(imageView, 0);
return imageView;
}
我希望能得到一个很好的建议。我在考虑自己只加载一些图像并动态地添加它们,但我不知道如何在我不再需要它们时销毁加载的图像。 我愿意接受任何建议!
这将是一个很好的解决方案!现在要阅读所有内容,如果我有问题,我会回到这里。 – Marc
你有没有适用于此的适配器的例子?无法真正解决它。 – Marc
如果您使用Eclipse,请单击文件>新建> Android应用程序项目>下一步>下一步>下一步>空白活动,然后在导航类型中选择“可滚动选项卡+刷卡”。这将生成一个应用程序与viewpager使用片段适配器。应该让事情更容易理解。如果你遇到任何问题,请告诉我。 –