草庐IT

Android - Grow Heap (Frag Case) - 字节分配..不加载任何位图

当应用程序从初始屏幕加载到主页时会发生这种情况。它只发生在设备上而不是模拟器上:05-1708:10:16.627:I/dalvikvm-heap(14021):Growheap(fragcase)to20.580MBfor2424256-byteallocation05-1708:10:16.666:D/dalvikvm(14021):GC_FOR_ALLOCfreed1K,3%free21000K/21511K,paused21ms05-1708:10:16.697:D/dalvikvm(14021):GC_CONCURRENTfreed116K,3%free20885K/2151

Android outofmemory 错误位图大小超过 2.3.3 中的 vm 预算

我知道这个问题被问过几次了。他们都不清楚解决方案。让我解释一下这个问题。我有一个一次加载4张图片的Activity。我在onResume()方法中加载图像。Activity在加载时抛出位图错误。注释。我正在使用setImageResource(R.drawable.xxxx)方法调用设置图像,而不是直接使用位图/可绘制对象。图像缩放正确。该Activity在2.3之前的所有模拟器中运行良好,并且在实际设备(SamsungGalaxy5)中运行良好第一次初始化时出现错误,并且没有触发方向更改事件。图片的比例为800x600,平均大小为15kb(每张)。让我知道任何解决方案。如果您对And

Android 位图内存问题 - 错误 : Out of memory on a 8294416-byte allocation

我目前正在开发一个讲述故事的应用程序。这个故事包含“场景”,其中包含多个通过ImageView显示的JPEG和PNG文件。我创建了ImageView并通过以下函数将其添加到布局中:privateImageViewnewImage(Showshow){ImageViewiv=newImageView(this);StringfilePath=comin.generateFilePath(show);Log.i(TAG,"newImage,filePath="+filePath+"id="+show.id);WeakReferencebmp=newWeakReference(scaleBi

android - 当用户滚动时,Listview 项目从内存中删除位图

我正在开发一个安卓应用程序。我有一个包含ListView的Activity。ListView有很多项目,每个项目都包含一个位图图像。因为列表非常大并且包含很多图像,所以在加载位图时在某些旧设备上会出现内存不足错误。所以我正在寻找一种方法来为旧设备执行以下操作:为View中(或附近)的项目加载位图当用户向下滚动时,我加载应该向他显示的位图并删除现在隐藏的位图。因此,在任何时候,只有View中(或View附近)的图像才会加载到堆中,而其他View中不再存在的图像将被删除。有办法吗?附加信息:我遵循了关于如何有效加载位图图像的所有说明和代码(在android文档和我能找到的任何网站上),我还

android - Drawable 优于 android 中内存位图的优势

此问题与以下问题的答案相关联:ErrorremovingBitmaps[Android]在内存重新分配方面,在Android中使用Drawable比使用Bitmap有什么优势吗?我正在查看RomainGuy项目Shelves,他将SoftReference用于图像缓存,但我无法搜索当SoftReference自动回收位图内存时取消分配这些Drawable的代码在哪里。据我所知,必须在Bitmap上显式调用.recycle()才能取消分配。 最佳答案 据我了解,如果您不需要进行大量图像操作,位图通常更适合性能。但是,当我不手动回收它们

android - 如何在不首先读取整个图像的情况下就地缩放流式位图?

我有一个图像密集型的Android应用程序。我目前正在使用Bitmap.createScaledBitmap()将图像缩放到所需的大小。但是,此方法要求我在内存中已有原始位图,这可能相当大。如何在不先将整个位图写入本地内存或文件系统的情况下缩放正在下载的位图? 最佳答案 此方法将从图像中读取header信息以确定其大小,然后读取图像并将其缩放到所需的大小,而无需为完整的原始大小的图像分配内存。它还使用BitmapFactory.Options.inPurgeable,这似乎是一个记录稀疏但可取的选项,可以在使用大量位图时防止OoM异

android - 在android中将位图转换为棕褐色

有没有办法将位图转换为深褐色?我知道转换为grayScale是在ColorMatrix中设置setSaturation。但是棕褐色呢? 最佳答案 如果您有图像实例,则可以使用ColorMartix以棕褐色绘制它。让我描述一下如何使用Drawable执行此操作。publicstaticvoidsetSepiaColorFilter(Drawabledrawable){if(drawable==null)return;finalColorMatrixmatrixA=newColorMatrix();//makingimageB&Wmat

将base64字符串转换为位图的Android代码

嗨,stackoverflow团队我在将base64字符串转换为android中的位图时遇到了问题。我正在使用相机获取图像,并将图像转换为base64字符串以发布到服务器。我想在imageview中显示该图像,所以如何在从相机获取图像后在ImageView中显示图像。请帮助我解决问题。 最佳答案 假设您的图像数据在一个名为myImageData的字符串中,下面的代码应该可以解决问题:byte[]imageAsBytes=Base64.decode(myImageData.getBytes(),Base64.DEFAULT);Imag

android - 在ANDROID编程中从位图图像复制位矩阵

我正在开发一个Android应用程序,它可以帮助用户通过素描或绘图来复制位图的一部分。我的意思是用户将在以位图为背景的Canvas上绘制一些形状,然后我将这些点着色为位图(位矩阵/二维位数组)。到这里为止,每个hitng听起来都不错。现在的问题是如何复制矩阵中具有相应真位的图像部分?补充说明1)主图:2)图像作为Canvas背景:3)Canvas上的一些画作:4)绘制区域的位矩阵表示:5)预期输出: 最佳答案 你可以这样做。该示例使用一个Bitmap作为源,另一个Bitmap作为过滤矩阵。过滤器位图具有透明背景,过滤后的位图也是如此

android - ICS 上的位图以错误的像素格式加载

我遇到了以下问题。当IceCreamSandwich上运行的应用程序从资源加载任何位图时,它可能会被错误地呈现,就好像它已被解码为与当前窗口格式不同的格式,没有应用抖动。但是,解码格式和窗口格式都已明确设置:BitmapFactory.Optionsopts=newBitmapFactory.Options();opts.inPreferredConfig=Bitmap.Config.RGBA_8888;和getWindow().setFormat(PixelFormat.RGBA_8888);getWindow().addFlags(WindowManager.LayoutParam