OpenHarmony开源社区
直播中

ss

7年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[问答]

请问TableLayout图片是用什么渲染的?

TableLayout图片是用什么渲染的,服务器返回的是网络图片String格式的。


回帖(2)

ss

2022-3-24 11:30:16
你的string类型的image应该是一个地址吧   如果是地址的话你直接用Glide就可以了  你可能需要引入Glide依赖
依赖引入:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
implementation 'io.openharmony.tpc.thirdlib:glide:1.1.2' }
使用之前添加图片http明文请求配置
"deviceConfig": {
  "default": {
    "network": {
      "cleartextTraffic": true
    }
  }
}
网络权限不能忘
"module": {
    "reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }                  
    ]
}
使用
Glide.with(this)
.load(imagePath)   //路径或是URL
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)  //是否开启图片缓存
.into(image);  //需要显示图片的组件

举报

ss

2022-3-24 11:30:41
参考以下代码可以将 String 转换成  PixelMap
public static PixelMap getMapPixelMap(String urlString) {
       InputStream is = null;
       PixelMap pixelMap = null;
       try {
           URL url = new URL(urlString);
           URLConnection con = url.openConnection();
           con.setConnectTimeout(TIME_OUT);
           is = con.getInputStream();
           ImageSource source = ImageSource.create(is, new ImageSource.SourceOptions());
           ImageSource.DecodingOptions options = new ImageSource.DecodingOptions();
           options.desiredSize = new Size(TILE_LENGTH, TILE_LENGTH);
           pixelMap = source.createPixelmap(options);
           return pixelMap;
       } catch (IOException exception) {
           LogUtils.info(TAG, "getImagePixelMap:" + exception.getMessage());
       } finally {
           if (is != null) {
               try {
                   is.close();
               } catch (IOException e) {
                   LogUtils.info(TAG, "getImagePixelMap:" + e.getMessage());
               }
           }
       }
       return pixelMap;
   }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分