加载高清大图思路

2022-06-11  本文已影响0人  sunny635533

第一种方式用Gilde,
布局如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/img_content"
    android:adjustViewBounds="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</androidx.core.widget.NestedScrollView>

使用Glide的时候,需要设置ImageViewTarget,才能获取到高清点图片

AppCompatImageView imageView = this.findViewById(R.id.img_content);
        RequestOptions requestOptions =new RequestOptions()
                .diskCacheStrategy(DiskCacheStrategy.NONE);
//                .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)//关键代码,加载原始大小
//                .format(DecodeFormat.PREFER_RGB_565);//设置为这种格式去掉透明度通道,可以减少内存占有
//        .placeholder(R.drawable.img_error)
//                .error(R.drawable.img_error)
        Glide.with(this)
                .setDefaultRequestOptions(requestOptions)
                .load(url)
                .into(new ImageViewTarget<Drawable>(imageView) {
                    @Override
                    protected void setResource(@Nullable Drawable resource) {
                        view.setImageDrawable(resource);
                    }
                });

第二种方式使用BitmapRegionDecoder,参考如下文章:
https://blog.csdn.net/qq_21154101/article/details/105170954
https://developer.android.com/topic/performance/graphics/load-bitmap?hl=zh-cn

上一篇下一篇

猜你喜欢

热点阅读