精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

HarmonyOS的OhosGlide三方組件應(yīng)用介紹

鴻蒙系統(tǒng)HarmonyOS ? 來(lái)源:51CTO鴻蒙社區(qū) ? 作者:軟通田可輝 ? 2021-03-24 11:38 ? 次閱讀

在實(shí)際應(yīng)用開(kāi)發(fā)中,會(huì)用到大量圖片處理,如:網(wǎng)絡(luò)圖片、本地圖片、應(yīng)用資源、二進(jìn)制流、Uri對(duì)象等,雖然官方提供了PixelMap進(jìn)行圖片處理,但是卻遠(yuǎn)遠(yuǎn)滿足不了實(shí)際應(yīng)用中各種五花八門的應(yīng)用場(chǎng)景,如占位圖、Gif圖、加載失敗圖、內(nèi)存浪費(fèi)、內(nèi)存溢出、節(jié)約流量等,這時(shí)候就需要一款能夠處理這些問(wèn)題,而且簡(jiǎn)單易用且性能很高的圖片處理器了,因此OhosGlide三方組件應(yīng)運(yùn)而生。

功能介紹
OhosGlide 是一款非常優(yōu)秀的圖片處理工具,支持多種格式圖片加載,采用磁盤緩存、內(nèi)存緩存方式實(shí)現(xiàn)預(yù)加載,指定緩存大小實(shí)現(xiàn)節(jié)省內(nèi)存避免OOM,操作方便簡(jiǎn)單易用。

指南

接下來(lái)我們來(lái)看下OhosGlide 具體是怎么使用的,在哪些場(chǎng)景使用,以及他的開(kāi)發(fā)指南

我們先來(lái)看下對(duì)于開(kāi)發(fā)者來(lái)講,如何使用這個(gè)三方件,也就是har包,需要注意哪些地方

1. 新建工程,增加組件Har包依賴

在應(yīng)用模塊中添加HAR,只需要將glidelibrary.har復(fù)制到entrylibs目錄下即可(由于build.gradle中已經(jīng)依賴的libs目錄下的*.har,因此不需要在做修改)。

2.修改配置文件,首先在entry下面的build.gradle添加library 的依賴

其次在content.json 中添加需要的權(quán)限(由于在開(kāi)發(fā)過(guò)程中,需要用到網(wǎng)絡(luò),以及存儲(chǔ)權(quán)限,所以需要在content.json中添加相應(yīng)的權(quán)限申明)

3.在我們需要加載網(wǎng)絡(luò)圖片的地方,實(shí)現(xiàn)以下代碼,具體如下:

OhosGlideUtils.with(this).load("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png").def(ResourceTable.Media_A).into(image);

注釋://with(this)當(dāng)前page

//load(url) 需要顯示的圖片url

//def(resID) 默認(rèn)展示圖片,當(dāng)中途發(fā)生異常,展示默認(rèn)的圖片

//into(image) 需要展示的component

在實(shí)際開(kāi)發(fā)中,我們不僅需要加載網(wǎng)絡(luò)圖片,還需要加載本地圖片,具體代碼如下:

注釋://load(inputStream) 需要顯示的圖片的流

作為一個(gè)程序員,最關(guān)注的不是如何使用三方件,而是三方件的靈魂,如果實(shí)現(xiàn)才是重中之重,那么作為圖片處理工具,核心的就是我們的緩存了,這樣不僅頁(yè)面加載快,而且還能節(jié)省流量,體驗(yàn)感好,接下來(lái)我們就來(lái)看下OhosGlide的緩存是如何實(shí)現(xiàn)的

緩存主要分為兩種,第一種:內(nèi)存緩存,也就是我們經(jīng)常說(shuō)的MemoryCache,當(dāng)首次加載圖片時(shí),將圖片緩存至內(nèi)存中,這樣用戶在有網(wǎng)的情況,再次訪問(wèn)時(shí),先加載內(nèi)存緩存圖片,然后再去網(wǎng)絡(luò)請(qǐng)求最新的圖片。減少流量的浪費(fèi)和增加用戶體驗(yàn)感

第二種就是我們說(shuō)的磁盤緩存:DiskCache,設(shè)計(jì)磁盤緩存的核心理念就是當(dāng)前設(shè)備沒(méi)有網(wǎng)絡(luò)的情況,訪問(wèn)該頁(yè)面,如果app有磁盤緩存,則顯示緩存的圖片。不至于用戶什么也看不到,這樣做的目的也是為了增加用戶體驗(yàn)感。

先來(lái)介紹第一種:MemoryCache,核心代碼如下,具體可以參考源碼

public static void savePixelMap(String key, PixelMap pixelMap) {
    if (!isCache(key)) {
        CACHE_LOADER.addBitmap(CacheUtils.hashKeyForCache(key), pixelMap);
    }
}
public static PixelMap getPixelMap(String key) {
    return CACHE_LOADER.getPixelMap(CacheUtils.hashKeyForCache(key));

}

再來(lái)介紹第二種:DiskCache ,核心代碼如下,具體可以參考源碼:

// Add緩存
byte[] bytes = response.body().bytes();
diskLruCacheImpl.addDiskCache(bytes, url);
// Get緩存
pixelMap = diskLruCacheImpl.getDiskCache(url);
if (pixelMap != null) {
    abilitySlice.getUITaskDispatcher().asyncDispatch(() -> {
        image.setPixelMap(pixelMap);
    });
}

緩存架構(gòu)圖如下:

代碼如下:

public static void savePixelMap(String key, PixelMap pixelMap) {
    if (!isCache(key)) {
        CACHE_LOADER.addBitmap(CacheUtils.hashKeyForCache(key), pixelMap);
    }
}
public static PixelMap getPixelMap(String key) {
    return CACHE_LOADER.getPixelMap(CacheUtils.hashKeyForCache(key));

}

最終模擬器展示一張網(wǎng)絡(luò)圖片效果圖如下:

在實(shí)現(xiàn)的過(guò)程中,我們可以在任何地方去調(diào)用OhosGlide 去展示網(wǎng)絡(luò)圖片,比如ListContainer加載列表

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2634

    瀏覽量

    66212
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS HiSpark AI Camera】基于HarmonyOS 重構(gòu)第三方3A算法

    項(xiàng)目名稱:基于HarmonyOS 重構(gòu)第三方3A算法試用計(jì)劃:1. 我有豐富的海思平臺(tái)開(kāi)發(fā)經(jīng)驗(yàn),試用海思的3516,3519,3559AV100等產(chǎn)品量產(chǎn)過(guò)百萬(wàn)級(jí)出貨量的產(chǎn)品,熟悉海思的ISP框架
    發(fā)表于 09-25 10:11

    【軟通動(dòng)力】HarmonyOS三方件開(kāi)發(fā)指南(2)——LoadingView組件

    `1.LoadingView組件功能介紹1.1.功能介紹:LoadingView組件是一個(gè)可以顯示加載動(dòng)畫(huà)的三方
    發(fā)表于 03-18 14:12

    【軟通動(dòng)力】HarmonyOS三方件開(kāi)發(fā)指南(14)-Glide組件功能介紹

    占位圖、Gif圖、加載失敗圖、內(nèi)存浪費(fèi)、內(nèi)存溢出、節(jié)約流量等,這時(shí)候就需要一款能夠處理這些問(wèn)題,而且簡(jiǎn)單易用且性能很高的圖片處理器了,因此OhosGlide三方組件應(yīng)運(yùn)而生。功能介紹
    發(fā)表于 04-25 09:59

    【軟通動(dòng)力】HarmonyOS三方件開(kāi)發(fā)指南(15)-LoadingView功能介紹

    專門為移動(dòng)開(kāi)發(fā)設(shè)計(jì)的一個(gè)第三方開(kāi)源庫(kù),他的優(yōu)點(diǎn)如下:(1) 跨平臺(tái)(目前支持Android、iOS 、Web、React Native等平臺(tái)),本組件完成了Lottie再HarmonyOS上的移植。(2
    發(fā)表于 07-14 09:09

    HarmonyOS應(yīng)用開(kāi)發(fā)-三方UI線程圖組件練習(xí)

    HarmonyOS已陸續(xù)推出1000+組件,包含UI、動(dòng)畫(huà)圖形、框架、安全、工具、網(wǎng)絡(luò)、文件數(shù)據(jù)、多媒體、圖片緩存和基礎(chǔ)功能,具有多設(shè)備形態(tài)可用、多端部署、性能優(yōu)化大特點(diǎn)。使用組件
    發(fā)表于 10-23 11:13

    HarmonyOS組件更新,新增700+開(kāi)源組件

    HarmonyOS-TPC倉(cāng)庫(kù),此倉(cāng)庫(kù)收集了已經(jīng)開(kāi)源的三方Java組件資源,開(kāi)發(fā)者可以根據(jù)自身需求參考和使用。圖2 三方Java組件資源匯總
    發(fā)表于 11-18 11:17

    組件資料】HarmonyOS三方件開(kāi)發(fā)指南

    1、HarmonyOS三方件開(kāi)發(fā)指南——LoadingView組件1.LoadingView組件功能介紹1.1.功能
    發(fā)表于 03-21 11:18

    鴻蒙開(kāi)源第三方組件資料合集

    /JustWeEngine )追蹤到原項(xiàng)目版本  項(xiàng)目介紹項(xiàng)目名稱:JustWeEngine所屬系列:ohos的第三方組件適配移植功能:JustWeEngine是托管在Gitee 的一個(gè)開(kāi)源的Ohos原生
    發(fā)表于 03-23 09:53

    如何確定OpenVINO中第三方組件的相關(guān)許可?

    無(wú)法確定 OpenVINO?中第三方組件的相關(guān)許可。
    發(fā)表于 08-15 06:45

    三方實(shí)例:iView開(kāi)發(fā)介紹 (1)

    三方實(shí)例介紹 - iView (1)
    的頭像 發(fā)表于 08-22 01:42 ?4345次閱讀

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

    Android 發(fā)展到現(xiàn)在不僅提供了很多 API,還提供了很多第三方庫(kù)。這降低了我們開(kāi)發(fā)者的開(kāi)發(fā)難度,提升了開(kāi)發(fā)效率,讓?xiě)?yīng)用開(kāi)發(fā)更加的簡(jiǎn)單高效。 眾所周知,HarmonyOS 除了提供 16000
    的頭像 發(fā)表于 10-11 14:11 ?4008次閱讀

    openharmony第三方組件適配移植之SimpleRatingBar

    項(xiàng)目介紹: 項(xiàng)目名稱:SimpleRatingBar 所屬系列:openharmony的第三方組件適配移植 功能:一個(gè)簡(jiǎn)單的星級(jí)評(píng)分,您可以更輕松地自定義圖像和動(dòng)畫(huà)。 項(xiàng)目移植狀態(tài):主功能完成 調(diào)用
    發(fā)表于 03-18 10:39 ?1次下載

    openharmony第三方組件適配移植的okhttp教程案例

    項(xiàng)目介紹 項(xiàng)目名稱:okhttp 所屬系列:openharmony的第三方組件適配移植 功能:PUT,DELETE,POST,GET等請(qǐng)求、文件的上傳下載、加載圖片(內(nèi)部會(huì)圖片大小自動(dòng)壓縮)、支持
    發(fā)表于 04-12 09:25 ?4次下載

    openharmony第三方組件適配移植的數(shù)據(jù)庫(kù)組件

    項(xiàng)目介紹 項(xiàng)目名稱:DBFlow 所屬系列:openharmony的第三方組件適配移植 功能:DBFlow是一個(gè)快速、高效、功能豐富數(shù)據(jù)庫(kù)組件 項(xiàng)目移植狀態(tài):主功能完成 調(diào)用差異:無(wú)
    發(fā)表于 04-13 09:56 ?2次下載

    鴻蒙三方庫(kù)適配指南

    本文以 OpenHarmony-3.2-Beta4 上適配 modbus 編譯動(dòng)態(tài)庫(kù)為例。 獲取三方庫(kù) 使用之前要做好代碼溯源,確認(rèn)可用的版本,開(kāi)源許可和發(fā)布方式等。 通過(guò)正確的路徑獲取源碼,可以
    的頭像 發(fā)表于 02-14 09:33 ?3360次閱讀