鸿蒙 加载长图(大图自动适用屏幕的宽度)
1.引入:
implementation 'io.openharmony.tpc.thirdlib:glide:1.0.3'implementation 'io.openharmony.tpc.thirdlib:subsampling-scale-image-view:1.0.4'//加载长图
2.xml
<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView ohos:id="$+id:longImg" ohos:image_src="$media:test2" ohos:height="match_content" ohos:layout_alignment="center" ohos:width="match_content"/>
3.java 代码
private void initView() { GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder() .build()); Glide.with(context) .asBitmap() .load(glideUrl) .apply(new RequestOptions() .placeholder(ResourceTable.Media_boy) .error(ResourceTable.Media_boy) .skipMemoryCache(true) // 不使用内存缓存 .diskCacheStrategy(DiskCacheStrategy.NONE) // 不使用磁盘缓存 ) .into(new SimpleTarget<PixelMap>() { public void onResourceReady(PixelMap pixelMap, Transition<? super PixelMap> transition) { longImg.setPixelMap(pixelMap); int phoneWidth = DisplayUtils.getDisplayWidthInPx(context); int phoneHeight = DisplayUtils.getDisplayHeightInPx(context); Log.d("屏幕-宽度", phoneWidth + ""); Log.d("屏幕-高度", phoneHeight + ""); int picWidth = pixelMap.getImageInfo().size.width; int picHeight = pixelMap.getImageInfo().size.height; Log.d("图片-宽度", picWidth + ""); Log.d("图片-高度", picHeight + ""); float scaleNum = ((float) phoneWidth / (float) picWidth); Log.d("放大比率-宽度", scaleNum + ""); //如果 图片的高度度 大于 屏幕的宽度 就把原始图片放大到屏幕的宽度 放大的比率是 手机屏幕的宽度除以图片的宽度 if (picHeight >= phoneHeight) {Log.d("设置最小放大比率", "小====");longImg.setMinScale(scaleNum); } } }); }