一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)中怎么引入第三方庫

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:即構(gòu)忠武 ? 2021-10-11 14:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Android 發(fā)展到現(xiàn)在不僅提供了很多 API,還提供了很多第三方庫。這降低了我們開發(fā)者的開發(fā)難度,提升了開發(fā)效率,讓應(yīng)用開發(fā)更加的簡單高效。

眾所周知,HarmonyOS 除了提供 16000 多個 API 外也是支持組件庫的調(diào)用的,那么鴻蒙應(yīng)用開發(fā)是如何與第三方庫銜接的呢?

加載一張圖片是每個應(yīng)用所需的功能,在 Android 平臺提供的有 Glide、ImageLoader、Picasso,其中 Glide 最被開發(fā)者熟知,所以我就以 Glide 作為例子驗證在 HarmonyOS 開發(fā)中如何使用圖片加載庫。

組件庫(Glide)的依賴方式

HarmonyOS 應(yīng)用開發(fā)提供了三種常用的組件庫引入方式,以下的三種依賴方式都是在 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)的使用

①配置

在開發(fā)前需要在 config.json 中做好配置的工作。

允許 HTTP 的請求:

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

網(wǎng)絡(luò)權(quán)限的設(shè)置:

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

②加載圖片

圖片的來源可以是網(wǎng)絡(luò)的圖片、也可以是項目文件的圖片。兩種方式的加載方式如下,加載的圖片來源于網(wǎng)絡(luò) load() 的選擇 imagePath,本地圖片就選擇 imageResourceId。

調(diào)用方式:

Imageimage=(Image)findComponentById(ResourceTable.Id_img);
//LoadImagefromInternet(圖片來源于即構(gòu)官網(wǎng)的網(wǎng)絡(luò)圖)
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 圖可以是網(wǎng)絡(luò)圖片,也可以說本地圖片。

調(diào)用方式:

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 的過程,對系統(tǒng)的性能消耗是非常大的,所以在使用完的時候要及時釋放資源,防止內(nèi)存泄漏。

@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){

}

}

調(diào)用方式:

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

總結(jié)

通過對 Glide 的引入過程與實現(xiàn)過程,跟 Android 第三方庫引入與圖片加載沒有很大的區(qū)別。舉一反三,我們可以很輕松的引入其他的組件庫,也可以通過 Glide 實現(xiàn)其他的圖片加載效果。
編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3973

    瀏覽量

    130275
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1620

    瀏覽量

    64059
  • GIF
    GIF
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    6827
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33097

原文標題:鴻蒙開發(fā)中如何引入第三方庫?

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何集成第三方支付API到電商網(wǎng)站

    ? 在電商網(wǎng)站,集成第三方支付API是確保交易安全、提升用戶體驗的關(guān)鍵步驟。本文將逐步指導(dǎo)您完成整個流程,從選擇支付提供商到上線后的監(jiān)控。文章結(jié)構(gòu)清晰,包含代碼示例和實用建議,幫助您高效實現(xiàn)支付
    的頭像 發(fā)表于 07-16 10:35 ?33次閱讀
    如何集成<b class='flag-5'>第三方</b>支付API到電商網(wǎng)站

    天合跟蹤獲得DNV第三方風(fēng)洞測試審查報告

    近日, 天合跟蹤獲得DNV頒發(fā)的中國支架行業(yè)首張風(fēng)洞實驗第三方審查報告。該風(fēng)洞報告由天合跟蹤與同濟大學(xué)合作,針對開拓者1P跟蹤支架進行了全新的剛性模型測壓試驗和先進動力學(xué)分析研究,并由DNV進行獨立
    的頭像 發(fā)表于 07-08 17:35 ?247次閱讀

    使用 Claroty SRA 優(yōu)化第三方 OT 遠程訪問

    第三方,如原始設(shè)備制造商 (OEM) 技術(shù)員和維護承包商,是確保 OT 環(huán)境可用性、完整性和安全性的關(guān)鍵。負責(zé)服務(wù) OT 資產(chǎn)的第三方經(jīng)常遠程工作。這意味著,他們會通過無數(shù)廣泛使用的解決方案遠程連接
    的頭像 發(fā)表于 06-17 16:11 ?189次閱讀
    使用 Claroty SRA 優(yōu)化<b class='flag-5'>第三方</b> OT 遠程訪問

    第三方工業(yè)互聯(lián)網(wǎng)平臺有哪些

    第三方工業(yè)互聯(lián)網(wǎng)平臺有哪些
    的頭像 發(fā)表于 06-14 15:48 ?278次閱讀

    鈦和集團榮獲零跑汽車第三方實驗室資質(zhì)認可

    近期,鈦和集團順利通過了浙江零跑科技股份有限公司(以下簡稱“零跑汽車”)對第三方實驗室的能力驗證及資質(zhì)審核,助力零跑汽車實現(xiàn)“成為值得尊敬的世界級智能電動車企”的品牌愿景。
    的頭像 發(fā)表于 06-13 17:00 ?485次閱讀

    SGS榮獲比亞迪乘用車第三方實驗室資質(zhì)認可證書

    近日,國際公認的測試、檢驗和認證機構(gòu)SGS(以下簡稱:SGS)位于重慶的標瑞新能源實驗室(以下簡稱:SGS-CEC)榮獲比亞迪乘用車實驗室認可委員會(以下簡稱:比亞迪)頒發(fā)的“乘用車第三方實驗室資質(zhì)認可證書”。
    的頭像 發(fā)表于 05-20 15:04 ?439次閱讀

    第三方的DLP3010-LC開發(fā)板USB轉(zhuǎn)I2C失敗怎么解決?

    我們從第三方光機廠商購買了DLP3010-LC開發(fā)板,該開發(fā)板對外只有I2C接口,需要自己購買了USB轉(zhuǎn)I2C模塊,于是我們購買了TI推薦的CYPRESS的CY7C65215開發(fā)板U
    發(fā)表于 02-28 06:51

    第三方的dlp3010板子時遇到的幾個問題求解

    您好,在用第三方的dlp3010板子時遇到了如下問題: 固件能夠更新,系統(tǒng)上電后,初始proj_on為低,resetz為低,intz為低;手動拉高proj_on和cypress的gpio6,能夠
    發(fā)表于 02-26 07:19

    i.MX8M Yocto工程更新第三方軟件包

    IAC-IMX8MP-Kit開發(fā)板為例,介紹如何升級已經(jīng)配置好的Yocto工程第三方軟件包。首先,需要一個已經(jīng)拉取并編譯好的Yocto工程,這個步驟可以參考NXP官方Y(jié)octo文檔,
    的頭像 發(fā)表于 02-12 08:11 ?607次閱讀
    i.MX8M Yocto工程更新<b class='flag-5'>第三方</b>軟件包

    EE-303:將VisualDSP線程安全第三方RTOS配合使用

    電子發(fā)燒友網(wǎng)站提供《EE-303:將VisualDSP線程安全第三方RTOS配合使用.pdf》資料免費下載
    發(fā)表于 01-07 14:09 ?0次下載
    EE-303:將VisualDSP線程安全<b class='flag-5'>庫</b>與<b class='flag-5'>第三方</b>RTOS配合使用

    鴻蒙Flutter實戰(zhàn):14-現(xiàn)有Flutter 項目支持鴻蒙 II

    ││└── widgets #通用小型 widgets, 純dart編寫的 Flutter UI 組件 │├── components #封裝組件,可以依賴于第三方/第三方插件,
    發(fā)表于 12-26 14:59

    第三方檢測機構(gòu)該如何提升核心競爭力?

    在國家“一帶一路”和“智能制造2025”等政策的引領(lǐng)下,面對競爭日益激烈的國際環(huán)境,作為全球最大的制造業(yè)國家,中國的檢測行業(yè)正經(jīng)歷著迅猛的發(fā)展,成為全球增長最快、潛力最大的市場之一。 第三方檢測逐漸
    的頭像 發(fā)表于 12-17 15:44 ?866次閱讀
    <b class='flag-5'>第三方</b>檢測機構(gòu)該如何提升核心競爭力?

    鴻蒙Flutter實戰(zhàn):05-使用第三方插件

    # 鴻蒙Flutter 實戰(zhàn):使用第三方插件 在鴻蒙Flutter開發(fā),如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,一種是
    發(fā)表于 10-22 21:54

    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認輸入法

    本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板修改第三方輸入法為默認輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派設(shè)計,是Laval官方社區(qū)主薦的一款
    的頭像 發(fā)表于 09-24 09:43 ?1108次閱讀
    瑞芯微RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板Android11修改<b class='flag-5'>第三方</b>輸入法為默認輸入法

    維天地低代碼開發(fā)平臺助力第三方質(zhì)檢行業(yè)數(shù)據(jù)可視化

    第三方檢驗是由獨立于買賣雙方利益之外的第三方機構(gòu)(例如專業(yè)的監(jiān)督檢驗機構(gòu))執(zhí)行的,這些機構(gòu)以公正、公平、權(quán)威的非當事人身份,依據(jù)雙方共同認可的法律、標準和合同等進行商品的符合性檢驗和認證活動
    的頭像 發(fā)表于 08-09 13:59 ?604次閱讀
    <b class='flag-5'>三</b>維天地低代碼<b class='flag-5'>開發(fā)</b>平臺助力<b class='flag-5'>第三方</b>質(zhì)檢行業(yè)數(shù)據(jù)可視化