Android 从ImageAdapter GridLayout获取视图-OutofMemoryError

Android 从ImageAdapter GridLayout获取视图-OutofMemoryError,android,image,out-of-memory,grid-layout,Android,Image,Out Of Memory,Grid Layout,我的ImageAdapter出现了“内存不足”错误,我尝试了一些重用ImageView的解决方案,但不起作用,我希望任何解决方案都能帮助我:) 我有一些类似的应用程序,但没有这个问题,可以肯定的是,在这个应用程序上我有290个不同的图像,而另一个应用程序我只有一个:),我认为convertView==null可以解决outOfMemory问题 更多信息: -只有20个图像的大小超过100kb,其中只有3个大于500k,Android程序比大多数程序复杂得多,图像在Ram中占用的内存似乎比在磁盘上

我的ImageAdapter出现了“内存不足”错误,我尝试了一些重用ImageView的解决方案,但不起作用,我希望任何解决方案都能帮助我:)

我有一些类似的应用程序,但没有这个问题,可以肯定的是,在这个应用程序上我有290个不同的图像,而另一个应用程序我只有一个:),我认为convertView==null可以解决outOfMemory问题

更多信息:
-只有20个图像的大小超过100kb,其中只有3个大于500k,Android程序比大多数程序复杂得多,图像在Ram中占用的内存似乎比在磁盘上占用的内存要多得多。尽管如此,有一件事你可以很容易地做到,还有一些其他的提示

  • 将android:largeHeap=“true”添加到清单中的应用程序标记中
  • 运行某种内存分析器来查找泄漏
  • 删除所有未使用的变量
  • 如果某些变量在类之间一致使用,则将其设为静态变量
  • 尝试使用大小正确的图像
  • 另外,看看

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {         
        ImageView imageView;
        if (convertView == null) { 
            imageView = new ImageView(mContext);//Creamos la imagen sólo si no existe
        } else {
            imageView = (ImageView) convertView;//Sino reusamos el objeto
        }
    
        //Todas con el mismo ancho
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    
        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }