毕加索Android内存问题

时间:2016-11-07 23:45:33

标签: android picasso

我正在使用Picasso来加载5张图片,首先,我正在调整我的图像大小以匹配我的屏幕宽度,这也用作我的高度来获得方形图像视图,然后调用centercrop使其看起来逼真同时删除了Alpha通道,但即使在我将所有这些内存增加到85mb之后,图像也从服务器下载,下面是使用的代码

                         Picasso.with(context)
                        .load(sale.getImage())
                        .config(Bitmap.Config.RGB_565)
                        .centerCrop()
                        .resize((int) Utils.convertDpToPixel((int) Utils.getScreenWidth(context)), (int) Utils.convertDpToPixel((int) Utils.getScreenWidth(context)))
                        .into(viewHolder.img_image, new Callback() {
                            @Override
                            public void onSuccess() {

                            }

                            @Override
                            public void onError() {
                                viewHolder.img_image.setVisibility(View.GONE);
                                viewHolder.img_image.destroyDrawingCache();
                            }
                        });
            }

以下是显示内存使用量enter image description here

的图像

我注意到的另一件事是Picasso在使用后没有清除内存,有时它显示我使用的是20mb,但是当我从Android Studio内存调用GC内存下降到大约8mb时,我需要做些什么此?

1 个答案:

答案 0 :(得分:2)

您正在呼叫GC,内存是否达到最低值?这表示对使用的位图没有强烈的引用。 一切都很好

由于将大图像解码为位图,因此会占用大量内存。位图格式非常重。这与此无关。我建议你降低生成图像的分辨率。