2015-11-23 37 views
0

以下是ViewPager中使用的PageF片段的来源& PageAdapter。如何使用Fragment在pageAdapter中回收位图?在android中

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); 
    } 

} 

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

回答

1

你或许应该避免自己创建位图

看这个JavaDoc

ImageView#setImageResource(int resId);

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

+0

非常感谢! – myoungjin

相关问题