我已經設置了一個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使用片段適配器。應該讓事情更容易理解。如果你遇到任何問題,請告訴我。 –