鸿蒙OS前端开发入门指南:网络图片_Image渲染网络图片 - HarmonyOS技术社区

Chase620 等级 451 0 0

目录:
1、开启明文传输
2、权限申请
3、引入http插件
4、案例展示
5、《鸿蒙OS前端开发入门指南》文章合集

开启明文传输 在config.json配置文件添加如下配置(如果不开启可以不配置)

 "deviceConfig": {
     "default": {
       "network": {
         "usesCleartext": true
       }
     }
  }, 

权限申请 在配置文件module中添加如下

 "reqPermissions": [{
      "name":"ohos.permission.INTERNET"
    }], 

引入zzr老师写的鸿蒙http插件

 implementation 'com.zzrv5.zzrhttp:ZZRHttp:1.0.1' 

案例1

使用方式,

 new ImageNetWork(”当前的abilitySlice“,“创件的Image组建”,"图片地址").start(); 

网络图片类

package com.example.shangjinlieren.compontents;

import com.zzrv5.mylibrary.ZZRCallBack;
import com.zzrv5.mylibrary.ZZRHttp;
import com.zzrv5.mylibrary.ZZRResponse;
import ohos.aafwk.ability.AbilitySlice;
import ohos.agp.components.Image;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import ohos.media.image.ImageSource;
import ohos.media.image.PixelMap;

public class ImageNetWork {
    private final static HiLogLabel LABEL_LOG = new HiLogLabel(HiLog.LOG_APP, 0, "HmOSImageLoader");
    private  AbilitySlice abilitySlice;
    private  Image image;
    private  String url;

    public ImageNetWork(AbilitySlice abilitySlice, Image image, String url) {
        this.abilitySlice = abilitySlice;
        this.image = image;
        this.url = url;
    }

    public  void start() {
        ZZRHttp.get(url, new ZZRCallBack.CallBackString() {
            @Override
            public void onFailure(int code, String errorMessage) {
                //http访问出错了,此部分内容在主线程中工作;
                //可以更新UI等操作,请不要执行阻塞操作。
                System.out.println("errorMessage"+errorMessage);
            }
            @Override
            public String onParseResponse(ZZRResponse response) {
                //创建图片源
                ImageSource imageSource = ImageSource.create(response.inputStream, null);
                //根据图片源创建位图
                PixelMap pixelMap = imageSource.createPixelmap(null);
                //需要异步渲染UI
                abilitySlice.getUITaskDispatcher().asyncDispatch(new Runnable() {
                    @Override
                    public void run() {
                        //展示到组件上
                        System.out.println("挂载了");
                        image.setPixelMap(pixelMap);
                        pixelMap.release();

                    }
                });
                return super.onParseResponse(response);
            }
            @Override
            public void onResponse(String response) {

            }
        });
    }
} 

作者:BLUESKYHOST
想了解更多内容,请访问51CTO和华为合作共建的鸿蒙社区:https://harmonyos.51cto.com/

本文转自 https://www.cnblogs.com/HarmonyOS/p/14517871.html,如有侵权,请联系删除。

收藏
评论区

相关推荐

🎉无人维护?官方打脸:Element UI for Vue 3.0 来了!🎊
Element 开发团队宣布正式发布 Element Plus 的首个 beta 版本,Element Plus 是 Element 对 Vue 3.0 的升级适配。此前网上有传言称 Element 无人维护,Element UI 也不会支持 Vue 3.0,这次官方出来打脸了。 image(https://imghelloworld.ossc
指针——《狂人C》观点
9.1 指针是什么 9.1.1 指针是一类数据类型的统称 对于C语言来说,计算机的内存由连续的字节(byte)构成。这些连续的字节同样被连续地编上了号码以相互区别,这个号码就是所谓的地址(Address),如图91所示。 image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题 image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png) 错误代码 var date '20210306 17:00:00' var dateT
一文搞懂什么是HTTP与HTTPS
(https://blog.csdn.net/petterp/article/details/102779257)Http与Https的区别。 在最近的开发中,深感网络相关基础知识薄弱,于是趁周末好好总结一
鸿蒙OS前端开发入门指南:网络图片_Image渲染网络图片 - HarmonyOS技术社区
目录: 1、开启明文传输(https://harmonyos.51cto.com/posts/3388bky) 2、权限申请(https://harmonyos.51cto.com/posts/3388bky) 3、引入http插件(https://harmonyos.51cto.com/posts/3388bky) 4、案例展
深入理解 Go Slice
(https://imghelloworld.osscnbeijing.aliyuncs.com/0ce8a8773a658d4b843e5796a0dbf001.png) image 原文地址:深入理解 Go Slice(https://github.com/EDDYCJY/blog/blob/master/golang/pkg/20
Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析
Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析 前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) image(https:/
Go VS Java:一位资深程序员对两种语言的解读
导读:对于软件开发的编程语言,其实没有万能灵药。 本文作者详细介绍了他使用Java和Go这两种编程语言,一个是传统语言,一个是新兴语言的工作方式。 image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/0f0509de2420894d6c75e8678081e0cd.png)
【Flutter实战】图片和Icon
3.5 图片及ICON 3.5.1 图片Flutter中,我们可以通过Image组件来加载并显示图片,Image的数据源可以是asset、文件、内存以及网络。 ImageProviderImageProvider 是一个抽象类,主要定义了图片数据获取的接口load(),从不同的数据源获取图片需要实现不同的ImageProvi
go每日一库 [home-dir] 获取用户主目录
关于我顾名思义,gohomedir用来获取用户的主目录。实际上,通过使用标准库os/user我们也可以得到内容,使用以下方式 标准库使用package mainimport ( "fmt" "log" "os/user")func main() { u, err : user.Current() if err nil {
手把手教你做一个华为鸿蒙系统Demo级项目(JS角度)
系统定位HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。 对消费者而言,HarmonyOS能够将生活场景中的各类终端进行能力整合,可以实现不同的终端设备之间的快速连接
如何在React Native和Expo中掩盖Text和TextInput组件
在本文中,我将向您展示如何在React Native和Expo中使用自定义蒙版,可用于iOS,Android和Web!我们将使用一个名为库,这是一个没有本机代码的完整javascript库,然后您可以在React Native环境的所有CLI中使用。](https://res.cloudinary.com/practicaldev/image/fetch/s
https://cloud.tencent.com/developer/article/write/1830331
一、目标今天的目标是这个sign和appcode 二、步骤 Jadx没法上了app加了某梆的企业版,Jadx表示无能为力了。 FRIDADEXDumpDexDump出来,木有找到有效的信息。 Wallbreaker葫芦娃的Wallbreaker可以做些带壳分析,不过这个样本,用Frida的Spawn模式可以载入,Attach模式会失败。而直接用Objecti
申请软件著作权(代码太短的问题)
可以把import os,sys, urllib2等里面的代码也整理出来毕竟代码里面用到的import os (代码提取出来)import datetime (代码提取出来)import shutil (代码提取出来)import re (代码提取出来)import threading (代码提取出来)import time (代码提取出来)import r
Label中同时有text和image时,需要compound来控制
程序可以为按钮或 Label 等组件同时指定 text 和 image 两个选项,其中 text 用于指定该组件上的文本;image 用于显示该组件上的图片,当同时指定这两个选项时,通常 image 会覆盖 text。但在某些时候,程序希望该组件能同时显示文木和图片,此时就需要通过 compound 选项进行控制。compound 选项支持如下属性值:Non