经过3天的奋斗,我找到了一个不使用增加堆内存的解决方案
这个
我替换所有我的ImageView
android:id="@+id/grid_image"
android:layout_width="170dp"
android:layout_height="240dp"
android:adjustViewBounds="true"
android:layout_centerInParent="true"
/>
使用这个类我用来清除onDetachedFromWindow函数中的Image位图堆大小
public class SingleShotImageView extends ImageView {
public SingleShotImageView(Context context) {
super(context);
}
public SingleShotImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SingleShotImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDetachedFromWindow () {
setImageDrawable(null);
setBackgroundDrawable(null);
setImageBitmap(null);
System.gc();
}
}
现在它工作正常,我的堆内存仍然是
为8192016字节分配将堆(frag case)增长到11.719MB