> 文档中心 > 鸿蒙 加载长图(大图自动适用屏幕的宽度)

鸿蒙 加载长图(大图自动适用屏幕的宽度)

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);   }      }  });    }