1

我正在显示图像ViewPager.显示的图像占用大量空间。显示几张图片后,它抛出java.lang.outofMemoryError: Bitmap size exceeds VM bugdet.

关于可能出现问题的任何建议?

public Object instantiateItem(View pager, int position) {

    LayoutInflater inflater = (LayoutInflater) pager.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view = inflater.inflate(R.layout.fotopager_buttons, null);

    TextView text = ((TextView) view.findViewById(R.id.textView1));
    text.setText(Global.totalpaging_titlearray[position]);

    TextView textprice = ((TextView) view.findViewById(R.id.textprice));
    textprice.setText("SAR " + Global.totalpaging_pricearray[position]);

    TextView textdesc = ((TextView) view.findViewById(R.id.textdescription));
    textdesc.setText(Global.totalpaging_descarray[position]);

    ImageView imageView1 = ((ImageView) view.findViewById(R.id.image));
    bimage = getBitmapFromURL(Global.totalpaging_array[position]);
    imageView1.setImageBitmap(bimage);
    ((ViewPager) pager).addView(view);

    return view;
}
4

2 回答 2

0

据我了解,您正在查看寻呼机的页面上显示图像。您的视图寻呼机有多少页?

如果一页中的位图超出 VM 预算,请考虑调整位图大小或解码为低记忆颜色格式,例如 RGB565 或 ARGB444。

如果没有代码,就无法确定您是否正在正确地实例化视图寻呼机的页面。您可以发布 PagerAdapter 类instantiateItem(View view, int position)方法的代码吗?

于 2012-07-06T06:10:56.137 回答
0

在图像非常大之前,您会遇到此问题。它们是非常高分辨率的图像,因此具有非常大的尺寸。尝试使用任何软件(如 Photoshop)减小这些图像的大小或分辨率。

于 2016-02-21T12:01:25.857 回答