在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    3959

    瀏覽量

    129241
  • API
    API
    +關注

    關注

    2

    文章

    1555

    瀏覽量

    63319
  • GIF
    GIF
    +關注

    關注

    0

    文章

    24

    瀏覽量

    6743
  • HarmonyOS
    +關注

    關注

    79

    文章

    2005

    瀏覽量

    31827

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

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    第三方的DLP3010-LC開發板USB轉I2C失敗怎么解決?

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

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

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

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

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

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

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

    鴻蒙Flutter實戰:14-現有Flutter 項目支持鴻蒙 II

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

    第三方檢測機構該如何提升核心競爭力?

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

    鴻蒙Flutter實戰:05-使用第三方插件

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

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

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

    維天地低代碼開發平臺助力第三方質檢行業數據可視化

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

    請問esp8266會開放使用第三方云服務器嗎?

    如題,esp8266會開放使用第三方云服務器嗎,如百度,阿里云服務器?
    發表于 07-12 11:40

    是否有可能在支持gdb的第三方集成開發環境中使用DAS配置調試?

    是否有可能在支持 gdb 的第三方集成開發環境中使用 DAS 配置調試?
    發表于 07-02 07:29

    iOS漏洞:第三方應用可創建動畫圖標

    5月28日消息,開發者布萊斯·波斯特維克(Bryce Bostwick)在5月27日公布其發現,稱iOS系統存有漏洞,使第三方應用得以調用官方API,進而制作出動態應用圖標。
    的頭像 發表于 05-28 14:33 ?771次閱讀

    微軟或將開放Xbox主機授權給第三方廠商

    據悉,5 月 26 日,知名媒體 Windows Central 的編輯 Jez Corden 揭露了微軟即將遵循第三方手柄流程,允許在其 XBOX 主機上引入第三方產品。
    的頭像 發表于 05-27 15:18 ?856次閱讀

    MacPaw將在歐盟成員國推出第三方應用商店Setapp

    5月14日,MacPaw正式宣布將在今年5月14日在歐盟成員國面向蘋果iPhone推出第三方應用商城Setapp。自今年2月起,MacPaw已著手籌備該平臺。S
    的頭像 發表于 05-14 10:14 ?556次閱讀

    谷歌開放ZenDeviceEffects API,助第三方應用實現睡前屏幕管理

    據報道,谷歌近日在安卓 15 開發者預覽版 2 推出了全新 ZenDeviceEffects API,允許第三方應用訪問數字健康的就寢模式功能。
    的頭像 發表于 05-08 16:41 ?654次閱讀
    主站蜘蛛池模板: 精品一区二区三区免费爱 | 欧美一级高清免费a | 久操精品在线观看 | 亚洲青草视频 | 欧美一区二区三区在线观看免费 | 天天色天天操综合网 | 国产黄色在线 | 国产未成女年一区二区 | 夜夜天天干 | 男人操女人视频网站 | 天天透天天操 | 天天噜噜噜 | 欧美一级在线免费观看 | 国产农村一级特黄α真人毛片 | 国产成人三级视频在线观看播放 | 欧美精品综合一区二区三区 | 欧美一级爱操视频 | 婷婷在线免费观看 | 久久亚洲欧美成人精品 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 全部免费特黄特色大片农村 | 高h细节肉爽文bl文 高h细节肉爽文男男 | 五月婷婷电影 | 天堂成人| 天天弄| 一级毛片真人免费播放视频 | 天天好b | 爽死你个放荡粗暴小淫视频 | 末发育娇小性色xxxxx视频 | 午夜高清在线 | 久久夜夜操 | 狠狠五月天 | 六月色| 国产美女久久久久 | 国产日本特黄特色大片免费视频 | 欧洲不卡一卡2卡三卡4卡网站 | 377p亚洲欧洲日本大胆色噜噜 | 欧美激欧美啪啪片免费看 | 午夜影院在线看 | 美女扒开尿口给男人爽免费视频 | 国产美女特级嫩嫩嫩bbb |