本文主要介绍如何使用 subsampling-scale-image-view 加载 AVIF 超大图片。
安装 subsampling-scale-image-view 和 AVIF SDK
implementation 'com.qcloud.cos:avif:1.1.4'implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'// AndroidX请使用// implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'
步骤一:获取 SubsamplingScaleImageView 控件
SubsamplingScaleImageView subsamplingScaleImageView = findViewById(R.id.subsampling_scale_image_view);
步骤二:注册解码器
// 设置AVIF图片解码器subsamplingScaleImageView.setBitmapDecoderClass(AvifSubsamplingImageDecoder.class);subsamplingScaleImageView.setRegionDecoderClass(AvifSubsamplingImageRegionDecoder.class);
如果要切换为普通图片加载,请切换成默认解码器,如下:
// 设置普通图片解码器subsamplingScaleImageView.setBitmapDecoderClass(SkiaImageDecoder.class);subsamplingScaleImageView.setRegionDecoderClass(SkiaImageRegionDecoder.class);
步骤三:使用 subsampling-scale-image-view 加载图片
// 加载 uri 图片subsamplingScaleImageView.setImage(ImageSource.uri(uri));// 加载 assets 图片subsamplingScaleImageView.setImage(ImageSource.asset("test.avif"));// 加载 resource 图片subsamplingScaleImageView.setImage(ImageSource.resource(R.raw.avif));