Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – ImageView:如果ImageView不可见,则自动回收位图(在ScrollView中)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我已经看了一段时间的 ImageView源代码,但我还没有想出一个钩子来做到这一点.

问题是:在ScrollView中有30个400×800图像(图像数量是可变的).由于它们完全适合屏幕,因此每个将占用1.3 MB的RAm.

我想要的是:能够为ScrollView中当前可见的ImageView加载/卸载位图.如果用户滚动并且位图不再可见(在距离阈值内),则应该回收位图,以便内存可以被同一ScrollView中的其他位图使用.我正在进行下采样以及所有这些,所以不用担心.如果你只通过扩展ImageView来实现这一点(如果可能的话我想不要乱用ScrollView).

简介:我可以在ImageView变得可见之后加载图像(使用聪明的技巧),但我不知道何时卸载它们.

注意:由于其他可用性原因,我无法使用ListView执行此操作.

解决方法

如果要回收位图,请调用方法.
public static void recycleImagesFromView(View view) {
            if(view instanceof ImageView)
            {
                Drawable drawable = ((ImageView)view).getDrawable();
                if(drawable instanceof BitmapDrawablE)
                {
                    BitmapDrawable bitmapDrawable = (BitmapDrawablE)drawable;
                    bitmapDrawable.getBitmap().recycle();
                }
            }

            if (view instanceof ViewGroup) {
                for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                    recycleImagesFromView(((ViewGroup) view).getChildAt(i));
                }
            }
        }

大佬总结

以上是大佬教程为你收集整理的android – ImageView:如果ImageView不可见,则自动回收位图(在ScrollView中)全部内容,希望文章能够帮你解决android – ImageView:如果ImageView不可见,则自动回收位图(在ScrollView中)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。