【问题标题】:How to recycle a bitmap in pageAdapter with Fragment? in android如何使用 Fragment 回收 pageAdapter 中的位图?在安卓中
【发布时间】:2016-02-25 10:07:45
【问题描述】:

这里是 ViewPager 和 PageAdapter 中使用的PageF 片段的来源。

public class PageF extends Fragment {
    public static final String ARG_PARAM1 = "bitmap";

    public static PageF newInstance(int id) {
        PageF fragment = new PageF();
        Bundle args = new Bundle();
        args.putInt(ARG_PARAM1, id);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup  container,
         Bundle savedInstanceState) {
        return inflater.inflate(R.layout.preview_image, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable final Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ImageView imageView = (ImageView) view;
        Bitmap bitmap = BitmapFactory.decodeResource(
                getResources()
                , getArguments().getInt(ARG_PARAM1)
        );
        imageView.setImageBitmap(bitmap);
    }

}

如何回收该位图?有时,在某些设备中,它会发生内存不足。 :(

【问题讨论】:

    标签: android bitmap android-viewpager recycle


    【解决方案1】:

    您应该避免自己创建位图。

    看看这个JavaDoc

    ImageView#setImageResource(int resId);

    它不会阻止所有内存不足(OOM)错误

    【讨论】:

      猜你喜欢
      • 2013-06-16
      • 1970-01-01
      • 2017-08-31
      • 2012-10-26
      • 1970-01-01
      • 2017-04-18
      • 2023-02-03
      • 2020-07-25
      • 1970-01-01
      相关资源
      最近更新 更多