相关疑难解决方法(0)

android - 创建位图时的内存不足异常

在第二次创建位图后,我收到以下错误:

04-17 18:28:09.310: ERROR/AndroidRuntime(3458): java.lang.OutOfMemoryError: bitmap size exceeds VM budget

this._profileBitmap = Bitmap.createBitmap(_profileBitmap, xCoor,  yCoor, width, height);
Run Code Online (Sandbox Code Playgroud)

从日志:

04-17 18:27:57.500: INFO/CameraCropView(3458): Original Photo Size: W 1536 x H 2048   
04-17 18:28:06.170: INFO/CameraCropView(3458): xCoor: 291   
04-17 18:28:06.170: INFO/CameraCropView(3458): yCoor: 430    
04-17 18:28:06.170: INFO/CameraCropView(3458): Width: 952  
04-17 18:28:06.170: INFO/CameraCropView(3458): Height: 952  
Run Code Online (Sandbox Code Playgroud)

由于图像很大,我得到了错误.但有趣的是错误不是第一次发生,只有当我第二次拍摄时才会发生,这让我相信这个profileBitmap不会被破坏.我该如何清理它?

android memory-leaks bitmap

14
推荐指数
5
解决办法
6万
查看次数

如何在Android中使用位图时避免内存不足错误

我正在使用位图.当代码运行时,它显示内存不足错误.如何避免错误.我的代码如下.提前致谢.

Bitmap myBitmap = Image.decodeSampledBitmapFromUri(path, 250, 500); 
img_cook[index].setImageBitmap(myBitmap); 

public static Bitmap decodeSampledBitmapFromUr(String path, int reqWidth,
            int reqHeight) {

    Bitmap bm = null;

    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(path, options);
    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
    options.inJustDecodeBounds = false;
    bm = BitmapFactory.decodeFile(path, options);

    return bm;
}

public static int calculateInSampleSize(BitmapFactory.Options options,
        int reqWidth, int reqHeight) {
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;

    if (height > reqHeight || width > reqWidth) …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
2
解决办法
3万
查看次数

我可以在用于解码图片文件的位图分配中捕获Android中的内存不足异常吗?

我试图围绕图片文件解码,但它无法捕获内存不足异常,并且应用程序崩溃.

我知道解码图片文件的一些技巧,比如子采样.但是我需要放大图片来查看细节,所以我不能对它进行过多的子采样.对于某些较新的设备,它可以成功分配更大的内存以避免内存不足异常.

对于一些较旧的设备,它不能.

如果我可以为不同的设备自定义我的应用程序,那将会很大.

所以我想:(1)我希望我可以解决内存不足异常,所以如果我抓住它,我可以减少图像大小.(2)或者,我希望我可以获得可用内存的大小进行分配.

我在网上搜索,找不到答案.

android android-memory

6
推荐指数
1
解决办法
6969
查看次数

ViewPager,PagerAdapter和Bitmap导致内存泄漏(OutOfMemoryError)

我已经构建了一个显示天气数据的Android应用程序(如果你想测试问题,我可以私下给你一个应用程序名称).用户可以从一天浏览到另一天以查看特定日期的天气.

应用架构

我的应用程序使用片段(单个MainActivity和导航抽屉调用特定片段).

DayPagerFragment使用ViewPager具有无限数量的页面(动态片段).页面代表一天.

DayPagerFragment

public class DayPagerFragment extends Fragment {

    private ViewPager mViewPager;

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

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mViewPager = (ViewPager) view.findViewById(R.id.pager);
        mViewPager.setOffscreenPageLimit(1);
        mViewPager.setAdapter(new DayAdapter(getChildFragmentManager()));
    }

    private static class DayAdapter extends FragmentStatePagerAdapter {

        public DayAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return DayFragment.newInstance(null);
        }

        @Override
        public int getCount() {
            // I don't …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks android-imageview android-fragments android-viewpager

6
推荐指数
1
解决办法
7496
查看次数