android.view.InflateException: Binary XML file line #53: Error inflating class

l 从一个界面跳转到另一个界面出现闪退,报错提示:


android.view.InflateException: Binary XML file line #53:Error inflating class


从stackoverflow找到的解决方案:当运行的时候,安卓会改变图片的大小(基于屏幕的尺寸和分辨率),安卓使用bitmap去重新改变图片的尺寸。所以,这个是内存非常敏感的行为。一个快速的解决方法是,将比较大的图片复制到drawable-ldpi,mdpi, hdpi 文件夹中。安卓会自动选择合适的文件并且重新改变他们的大小,

(上面是对stackoverflow的解释)


从stackoverflow找到的解决方案:

   当运行的时候,安卓会改变图片的大小(基于屏幕的尺寸和分辨率),安卓使用bitmap去重新改变图片的尺寸。所以,这个是内存非常敏感的行为。一个快速的解决方法是,将比较大的图片复制到drawable-ldpi,mdpi, hdpi 文件夹中。安卓会自动选择合适的文件并且重新改变他们的大小,

(上面是对stackoverflow的解释)


但是,这样并没有解决,不过问题找对了,有时间学习一下bitmap再去解决,我用的方法是将产生报错的图片换了一张小一点的。


l 在尝试解决上一个问题时,用了如下方法:


//减少图片占用的内存   //低碳界面的背景图片
InputStream is = this.getResources().openRawResource(+R.mipmap. low_carbon_background);
BitmapFactory.Options options = new BitmapFactory.Options();
options. inJustDecodeBounds = false;
options. inSampleSize = 1;   //width,hight设为原来的十分一
Bitmap btp = BitmapFactory. decodeStream(is, null, options);

//低碳的背景图片
low_carbon_background =(LinearLayout) findViewById(R.id. low_carbon_background);
Drawable drawable = new BitmapDrawable( this.getResources(), btp);
low_carbon_background.setBackground(drawable);

你可能感兴趣的:(Android)