我的ImageView是在Activity布局中定义的,没有ListView或者GridView,所以这里没有自动视图回收。每当加载活动时,我都会在 logcat 中出现“java.lang.IllegalArgumentException:无法绘制回收的位图”崩溃。这是我的 ImageView 的样式。如您所见,这里没有什么特别之处。该图像唯一值得注意的是它非常大(Nexus 10 的全屏尺寸)。我知道这个观点是罪魁祸首,因为注释掉它可以解决错误。
<style name="tabletbackground">
<item name="android:scaleType">centerCrop</item>
<item name="android:src">@drawable/loading_background</item>
<item name="android:contentDescription">background image</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
</style>
此 Activity 的代码中没有任何地方调用回收位图。知道这里发生了什么吗?
这是一些好奇的布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
style="@style/news_act_root" >
<ImageView
style="@style/tabletbackground"
android:id="@+id/tabletbackground" />
<!-- redacted -->
</RelativeLayout>