2016-12-23 57 views
-2

所以基本上,我是新来的Java和Android工作室。我知道基础知识,但我还没有那么好。java lang RuntimeException:

当我尝试在手机上运行应用程序时出现此错误。通过其他线程无法帮助我,因为我在MainActivity中基本上只有一个背景图像。我必须再添加一个,但是当我这样做并尝试运行该应用程序时,它会崩溃。

大小的背景图片:图像115KB 大小我还是要加:164 KB(试图将其压缩到74KB,没有工作。)

java.lang.RuntimeException: Canvas: trying to draw too large(430377192bytes) bitmap. 

我看到这个在另一个线程这本来是放在其中并没有帮助任何清单:

android:largeHeap="true" 

我希望我所提供的来回答这个问题,如果你需要更多信息,请告诉我需要足够的信息。

再次:我是新来的。

+1

请问您能为此显示代码吗?位图消耗430377192/1024/1024 = 410 MB内存。 – oschlueter

+0

[请看官方文档](https://developer.android.com/training/displaying-bitmaps/load-bitmap.html) –

+0

@oschlueter。不,它(近似一个方形图像)'sqrt(430377192/4)',它给出了一个10372 * 10372'的图像尺寸。我仍然必须看到具有这种分辨率的设备。如果你问为什么'/ 4',这是因为R,G,B和A(位图的颜色分量)是4个字节。 –

回答

1

430377192字节相当于10372 x 10372像素图像。这是太大太。而且,它比任何你可能遇到的Android设备屏幕都大得多。

因此,找到这个可绘制的资源,并将其分辨率降低到更合理的值。

如果你放在这个绘制资源在res/drawable/,请理解,res/drawable/res/drawable-mdpi/的代名词,代表专为-mdpi屏幕(160〜dpi)的图像。这些图像将在较高密度的屏幕上上采样到更高的分辨率(例如,屏幕上的每个轴会双倍)。请准备适当密度的专用绘图,或将此图像移动到res/drawable-nodpi/

+0

很好的解释。 –

相关问题