0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发中怎么引入第三方库

OpenHarmony技术社区 来源:鸿蒙技术社区 作者:即构忠武 2021-10-11 14:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Android 发展到现在不仅提供了很多 API,还提供了很多第三方库。这降低了我们开发者的开发难度,提升了开发效率,让应用开发更加的简单高效。

众所周知,HarmonyOS 除了提供 16000 多个 API 外也是支持组件库的调用的,那么鸿蒙应用开发是如何与第三方库衔接的呢?

加载一张图片是每个应用所需的功能,在 Android 平台提供的有 Glide、ImageLoader、Picasso,其中 Glide 最被开发者熟知,所以我就以 Glide 作为例子验证在 HarmonyOS 开发中如何使用图片加载库。

组件库(Glide)的依赖方式

HarmonyOS 应用开发提供了三种常用的组件库引入方式,以下的三种依赖方式都是在 build.grade 中操作。

①Maven 仓的依赖方式

以下验证过程的图片加载库 Glide 采用的就是这种方式。

步骤一:

allprojects{
repositories{
maven{
url'https://repo.huaweicloud.com/repository/maven/'
}
jcenter()
mavenCentral()
}
}

步骤二:

dependencies{
implementationfileTree(dir:'libs',include:['*.jar','*.har'])
implementation'io.openharmony.tpc.thirdlib1.1.2'
}

②Module 的依赖方式

如下:
dependencies{
implementationfileTree(dir:'libs',include:['*.jar','*.har'])
implementationproject(path:':glidelibrary')
}

如果在 setting.gradle 没有对该 glidelibrary 的配置,就要手动添加,如下。

include':entry',':glidelibrary'

③Har 包的依赖方式

如下:
dependencies{
implementationfileTree(dir:'libs',include:['*.jar','*.har'])
}

组件库(Glide)的使用

①配置

在开发前需要在 config.json 中做好配置的工作。

允许 HTTP 的请求:

"deviceConfig":{
"default":{
"network":{
"cleartextTraffic":true
}
}
}

网络权限的设置:

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

②加载图片

图片的来源可以是网络的图片、也可以是项目文件的图片。两种方式的加载方式如下,加载的图片来源于网络 load() 的选择 imagePath,本地图片就选择 imageResourceId。

调用方式:

Imageimage=(Image)findComponentById(ResourceTable.Id_img);
//LoadImagefromInternet(图片来源于即构官网的网络图)
StringimagePath="https://www.zego.im/_nuxt/img/53992d2.png";
//LoadImagefromResourceFolder(本地图片)
intimageResourceId=ResourceTable.Media_zego_img;
Glide.with(this)
.load(imagePath)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(image);

③加载 GIF 动图

加载的 GIF 图可以是网络图片,也可以说本地图片。

调用方式:

DraweeViewdraweeView=(DraweeView)findComponentById(ResourceTable.Id_draweeView);
StringimagePath="loadgiffromnetwork";
intimageResourceId="loadgiffromnative";
Glide.with(this)
.asGif()
.load(imageResourceId)
.into(draweeView);

HarmonyOS 的 Image 不支持 gif 的加载,因为 Image 和 Element 是独立的,不能使用 Element 重绘。

所以 Glide 要使用 gif 的能力就要使用 DraweeView。

"$+id:draweeView"
ohos:height="180vp"
ohos:width="180vp"
ohos:layout_alignment="center"/>

因为加载 gif 的过程,对系统的性能消耗是非常大的,所以在使用完的时候要及时释放资源,防止内存泄漏。

@Override
protectedvoidonBackground(){
super.onBackground();
draweeView.stopGif();
}

④加载圆角图片

加载圆角图片,把圆角 raduis 传进来,就可以绘制圆角度。

publicclassGlideRoundTransformextendsBitmapTransformation{

privatestaticfloatradius=0f;

publicGlideRoundTransform(Contextcontext){
this(context,0);
}

publicGlideRoundTransform(Contextcontext,intdp){
super();
this.radius=dp;
}

@Override
protectedPixelMaptransform(@NonNlsBitmapPoolpool,@NonNlsPixelMaptoTransform,intoutWidth,intoutHeight){
intwidth=toTransform.getImageInfo().size.width;
intheight=toTransform.getImageInfo().size.height;

PixelFormatconfig=
toTransform.getImageInfo()!=null?toTransform.getImageInfo().pixelFormat:PixelFormat.ARGB_8888;
PixelMapbitmap=pool.get(width,height,config);

setCanvasBitmapDensity(toTransform,bitmap);

Canvascanvas=newCanvas(newTexture(bitmap));
canvas.drawPixelMapHolderRoundRectShape(newPixelMapHolder(toTransform),newRectFloat(0,0,width,height),newRectFloat(0,0,width,height),radius,radius);
returnbitmap;
}

@Override
publicvoidupdateDiskCacheKey(MessageDigestmessageDigest){

}

}

调用方式:

Imageimage=(Image)findComponentById(ResourceTable.Id_img);
RequestOptionsmyOptions=newRequestOptions().transform(newGlideRoundTransform(getContext(),30));
Glide.with(this)
.load(ResourceTable.Media_zego_img_round)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.fitCenter()
.apply(myOptions)
.into(image);

总结

通过对 Glide 的引入过程与实现过程,跟 Android 第三方库引入与图片加载没有很大的区别。举一反三,我们可以很轻松的引入其他的组件库,也可以通过 Glide 实现其他的图片加载效果。
编辑:jq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    4048

    浏览量

    135032
  • API
    API
    +关注

    关注

    2

    文章

    2522

    浏览量

    67277
  • GIF
    GIF
    +关注

    关注

    0

    文章

    24

    浏览量

    7080
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36585

原文标题:鸿蒙开发中如何引入第三方库?

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DEKRA德凯荣获楚能第三方实验室认可资质

    近日,德凯质量认证(上海)有限公司和德凯宜特(昆山)检测有限公司获得武汉楚能乘用车有限公司(以下简称“楚能”)第三方实验室试验能力认可。
    的头像 发表于 06-03 13:44 106次阅读

    为什么MES企业要跟第三方机构合作设备数据采集?

    综上考虑,多数MES企业都不直接承接设备数据采集业务,而是选择和第三方机构合作。毕竟第三方机构长期耕耘这一领域,拥有成熟的产品体系、完善的技术路线以及专业的现场施工团队,能够快速应对各类现场难题,将
    的头像 发表于 03-19 15:03 962次阅读
    为什么MES企业要跟<b class='flag-5'>第三方</b>机构合作设备数据采集?

    苹果17可以无线充电吗?第三方配件怎么选?

    iPhone 17无线充电提升车载体验,支持Qi2.2,磁吸强、散热好,第三方配件需认准MFM认证。
    的头像 发表于 03-19 08:17 1218次阅读
    苹果17可以无线充电吗?<b class='flag-5'>第三方</b>配件怎么选?

    CW32W031调制频率的话有第三方软件工具么?

    请问,CW32W031调制频率的话,有第三方软件工具么?仿真软件也行
    发表于 01-19 06:54

    DEKRA德凯获得沃尔沃汽车第三方实验室认可资质

    近日,DEKRA德凯上海实验室成功通过沃尔沃汽车材料工程中心的严格评审,被正式列入其认可的第三方实验室名单。
    的头像 发表于 10-16 10:27 1049次阅读

    第三方电商数据 API 数据来源深度解析:合规与稳定背后的核心逻辑

    本文揭秘第三方电商数据API的底层逻辑:通过官方授权、生态共享与合规采集重来源,结合严格清洗校验,确保数据稳定、合规、高质。企业选型应关注来源合法性与场景匹配度,避开数据陷阱,实现真正数据驱动增长
    的头像 发表于 10-11 13:55 555次阅读

    SEGGER Ozone调试器支持第三方调试工具

    SEGGER强大的Ozone调试器和性能分析器,长期以来一直深受J-Link和J-Trace用户的信任,现在可以支持第三方调试工具了。
    的头像 发表于 09-29 11:45 1606次阅读

    货拉拉开源两款三方,为鸿蒙应用高效开发贡献力量

    、可扩展的通用工具,持续提升鸿蒙应用的创新体验与开发效率。 在这一生态共建的浪潮,货拉拉积极贡献了其在鸿蒙应用开发过程中的宝贵经验与技术积
    的头像 发表于 08-26 14:02 724次阅读
    货拉拉开源两款<b class='flag-5'>三方</b><b class='flag-5'>库</b>,为<b class='flag-5'>鸿蒙</b>应用高效<b class='flag-5'>开发</b>贡献力量

    电子测试行业第三方检测机构如何解决平台灵活度低,维护困难等痛点问题?

    在竞争激烈的市场环境第三方检测机构面临着诸多挑战,尤其是在来料测试环节。某权威第三方检测机构就曾深陷困境,他们一面要应对产品不确定性高与系统固化严重的矛盾,另一
    的头像 发表于 08-06 17:07 1055次阅读
    电子测试行业<b class='flag-5'>中</b>的<b class='flag-5'>第三方</b>检测机构如何解决平台灵活度低,维护困难等痛点问题?

    如何集成第三方支付API到电商网站

    ​ 在电商网站,集成第三方支付API是确保交易安全、提升用户体验的关键步骤。本文将逐步指导您完成整个流程,从选择支付提供商到上线后的监控。文章结构清晰,包含代码示例和实用建议,帮助您高效实现支付
    的头像 发表于 07-16 10:35 839次阅读
    如何集成<b class='flag-5'>第三方</b>支付API到电商网站

    天合跟踪获得DNV第三方风洞测试审查报告

    近日, 天合跟踪获得DNV颁发的中国支架行业首张风洞实验第三方审查报告。该风洞报告由天合跟踪与同济大学合作,针对开拓者1P跟踪支架进行了全新的刚性模型测压试验和先进动力学分析研究,并由DNV进行独立
    的头像 发表于 07-08 17:35 1212次阅读

    使用 Claroty SRA 优化第三方 OT 远程访问

    第三方,如原始设备制造商 (OEM) 技术员和维护承包商,是确保 OT 环境可用性、完整性和安全性的关键。负责服务 OT 资产的第三方经常远程工作。这意味着,他们会通过无数广泛使用的解决方案远程连接
    的头像 发表于 06-17 16:11 963次阅读
    使用 Claroty SRA 优化<b class='flag-5'>第三方</b> OT 远程访问

    第三方工业互联网平台有哪些

    第三方工业互联网平台有哪些
    的头像 发表于 06-14 15:48 1626次阅读

    钛和集团荣获零跑汽车第三方实验室资质认可

    近期,钛和集团顺利通过了浙江零跑科技股份有限公司(以下简称“零跑汽车”)对第三方实验室的能力验证及资质审核,助力零跑汽车实现“成为值得尊敬的世界级智能电动车企”的品牌愿景。
    的头像 发表于 06-13 17:00 1654次阅读

    钛和集团荣获吉利汽车第三方实验室资质认可

    近期,钛和集团汽车事业部顺利通过了浙江吉利控股集团有限公司(以下简称“吉利汽车”)对外部实验室的能力验证及资质审核,并获得了第三方实验室认可证书,助力吉利汽车实现“让世界充满吉利”的品牌愿景。
    的头像 发表于 06-10 15:03 1527次阅读