Java 更改图片时出现android二进制xml异常
我正在开发一个android应用程序,它是关于多语言的故事。在这个应用程序中,我可以从一种语言切换到另一种语言。当然,此应用程序包含多个图像和文本。在阿拉伯语中,一些照片需要翻转,在下面的代码中,我翻转了4幅图像:Java 更改图片时出现android二进制xml异常,java,android,inflate-exception,Java,Android,Inflate Exception,我正在开发一个android应用程序,它是关于多语言的故事。在这个应用程序中,我可以从一种语言切换到另一种语言。当然,此应用程序包含多个图像和文本。在阿拉伯语中,一些照片需要翻转,在下面的代码中,我翻转了4幅图像: if (i == 0) { rightImages[i].setImageResource(R.drawable.coverar); } if (i == 1) { rightImages[i].setImageResource(R.drawable.page1ar)
if (i == 0) {
rightImages[i].setImageResource(R.drawable.coverar);
}
if (i == 1) {
rightImages[i].setImageResource(R.drawable.page1ar);
}
if (i == 4)// for the arabic flipped pages
{
rightImages[i].setImageResource(R.drawable.page6_flipped);
leftImages[i].setImageResource(R.drawable.page7_flipped);
}
if (i == 8)// for the arabic flipped pages
{
rightImages[i].setImageResource(R.drawable.page14_flipped);
leftImages[i].setImageResource(R.drawable.page15_flipped);
}
if (i != 4 && i != 8) {
linLay[i].removeAllViews();
linLay[i].addView(rightImages[i]);
linLay[i].addView(leftImages[i]);
}
它崩溃了,它给了我以下错误:
android.view.InflateException : Binary XML file line #26: Error inflating class <unknown>
android.view.InflateException:二进制XML文件行#26:膨胀类时出错
奇怪的是,当我将第6页、第7页、第14页、第15页切换到第6页、第7页、第14页、第15页时,它不会崩溃
请注意,我使用的是平板电脑galaxy note 10.1 2014版,另一方面,它不会在其他平板电脑上崩溃(三星P7500 galaxy Tab 10.1、东芝at7-a、三星galaxy Tab 3 10.1)
有什么帮助吗?错误消息具有误导性,您可能会认为XML布局文件中存在错误。
虽然有时原因可能是这样的,但最明显的原因是当您的大图像仅放在一个可绘图文件夹中时。图像的大小很大,这就是为什么您在imageView的充气机布局中遇到充气异常的原因,请尝试将图像变小,然后在imageView中替换set null(它将自动调用GC)。在清单文件的应用程序标记中,添加以下行:
android:Largeheap = "true"
我用的是10"所以我把图像放在drawable-sw700dp文件夹中,并试图将它们放在folde drawable文件夹中,但在所有情况下,无论是否将图像调整到较小的分辨率,应用程序都无法在所有可绘制文件夹中添加相同的图像。至少,Android操作系统可以在没有havi的情况下立即拾取图像ng以相应地调整它们的大小。很抱歉,我尝试了你所说的,但仍然崩溃。如果其中一个资源具有高像素分辨率,则会占用大量内存,从而导致膨胀异常。因此,请基本上验证drawables图像中的像素分辨率只是布局所需的最低分辨率。或者参考此链接-