jjzjj

decodeResource

全部标签

java - Android BitmapFactory.decodeResource 占用太多内存

我对从资源加载位图有疑问。我的代码:publicvoidonClick(Viewview){if(mainButton==view){Bitmapbm=BitmapFactory.decodeResource(getResources(),R.drawable.test);}}test.jpg图像分辨率为3288x4936像素。它是jpeg(未压缩时为3.9MB/48.7MB)。虽然此功能有效(在我的Nexus72013设备上),但会发生以下异常:java.lang.OutOfMemoryError:Failedtoallocatea259673100byteallocationwit

android - 即使使用来自上下文的资源,BitmapFactory.decodeResource 也会返回 null

我已经检查了所有其他类似的问题,但没有人帮助我。这是我获取位图的代码:publicclassHachureViewextendsView{//...@OverrideprotectedvoidonDraw(Canvascanvas){//...bitmap=BitmapFactory.decodeResource(getContext().getResources(),R.drawable.hachure);bitmap.prepareToDraw();canvas.drawBitmap(bitmap,0,0,mPaint);}}这里是hach​​ure.xml:而hacure3是dr

android - BitmapFactory.decodeResource() 忽略 jpg 图像的 inPreferredConfig 选项

我尝试将jpeg资源图像加载到ARGB_8888格式的位图:BitmapFactory.Optionsopts=newBitmapFactory.Options();opts.inPreferredConfig=Bitmap.Config.ARGB_8888;Bitmapb=BitmapFactory.decodeResource(resources,resId,opts);Log.d("test",b.getConfig().toString());这里的resId是一个jpeg图片资源的id。输出为“RGB_565”。在android2.2和2.3的模拟器中试过这个。“inPref

java - 如何在 android 中的图像上放置图钉标记图像?

我是Android新手。我正在开发一个项目,我将在其中获取radio信号值(我可以从API获取值)。我有一个平面图。平面图有厨房、大厅、卧室部分。如果我单击厨房部分,我需要在该部分放置一个带有radio信号值的图钉图像。单击“保存”后,我需要锁定该特定部分中的图像(带有值)。同样,我可以根据需要放置许多Pin图片。请给我一些相关链接或示例代码来开发这个。我已附上图片供您引用。任何帮助将非常感激。 最佳答案 一种方法是使用Canvas。@OverrideprotectedvoidonDraw(Canvascanvas){super.o

java - 为什么我的应用占用这么多内存?

因此,我为一个学校项目使用位图和表面View制作了一个游戏应用程序。但是应用程序本身占用了太多内存!!只有当您启动它时,它才能获得高达60mb的ram,并且您玩得越多,它就会变得越高(有一次它达到了90mb的ram,并且游戏非常滞后)。在观看了GoogleI/O2011(https://www.youtube.com/watch?v=_CruQY55HOk)之后,我认为这可能是内存泄漏,因为应用程序是这样启动的:播放2分钟后,结果是这样的:应用程序本身看起来尽可能简单,具有8位图形且颜色不多:我使用的所有图像只有400kb那么到底为什么要占用这么多内存?!我认为它可能是声音,但所有声音

android - BitmapFactory.decodeResource 和莫名其妙的Out of Memory

我在解码可绘制图像资源960x926pxjpg时遇到奇怪的内存不足错误,分配了3555856字节。图像仅放置在drawable-xxhdpi(3x)中,我使用的是hdpi(1.5x)设备。两个问题:为什么我在堆中有足够的可用内存时仍会出现错误?分配给一个hdpi设备应该是((960/2)x(926/2))x4=888960字节(不是3555856)?有人可以解释一下吗?注意:问题是关于为什么在有22.5MB空闲内存的情况下获得3.5MB分配的OOM(参见日志)03-1817:30:15.05032750-32750/?D/dalvikvm:GC_FOR_ALLOCfreed10809K

android - BitmapFactory.decodeResource 返回空值

我正在尝试从View对象中的内部资源加载位图(源本身位于“可绘制”文件中)。代码是:importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.util.AttributeSet;importandroid.view.View;publicclassBannerViewextendsView{privateBitmapm_Banner=null;publicBanne

android - BitmapFactory.decodeResource 位图不是原始大小(以像素为单位)

我有这段代码可以裁剪图像表的一部分。问题是当我使用BitmapFactory.decodeResource并记录宽度和高度时,大小与原始大小不同。BitmapspriteSheet=BitmapFactory.decodeResource(context.getResources(),R.drawable.imageSheet);Log.i("SpriteSheetSize",spriteSheet.getWidth()+"w"+spriteSheet.getHeight()+"h");这是日志1536w330h但drawable(png)的原始大小是1024x220如何将我的资源解码

android - java.lang.OutOfMemoryError 在 android.graphics.BitmapFactory.decodeResource (BitmapFactory.java :374)

我在向gridview添加可变背景时遇到OutOfMemoryError...在finalBitmapshelfBackground=BitmapFactory.decodeResource(resources,background);这是我的代码。publicclassShelvesViewextendsGridView{privateBitmapmShelfBackground;privateintmShelfWidth;privateintmShelfHeight;publicShelvesView(Contextcontext){super(context);}publicSh

android - 为什么 BitmapFactory.decodeResource 会缩放我的图像?

我的/res/drawable/目录中有一张120x120px的图片。这是所有设备所需的大小。要加载此位图,我使用以下内容:BitmaptmpBmp=BitmapFactory.decodeResource(getResources(),R.drawable.myimage);问题是当我测量tmpBmp时,尺寸是360x360px。我知道如何将其缩小到我需要的120x120,但这是浪费处理时间,尽管时间很短。我假设这与屏幕密度有关,因为我的资源位于密度较小的目录中。decodeResource缩放图像的原因是什么?我该如何阻止它这样做? 最佳答案