成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS三方件開發指南(14)-Glide組件功能介紹

開發 OpenHarmony
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[388726]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 引言

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

功能介紹

OhosGlide 是一款非常優秀的圖片處理工具,支持多種格式圖片加載,采用磁盤緩存、內存緩存方式實現預加載,指定緩存大小實現節省內存避免OOM,操作方便簡單易用。

指南

接下來我們來看下OhosGlide 具體是怎么使用的,在哪些場景使用,以及他的開發指南

我們先來看下對于開發者來講,如何使用這個三方件,也就是har包,需要注意哪些地方

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

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

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

其次在content.json 中添加需要的權限(由于在開發過程中,需要用到網絡,以及存儲權限,所以需要在content.json中添加相應的權限申明)

3.在我們需要加載網絡圖片的地方,實現以下代碼,具體如下:

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

注釋://with(this)當前page

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

//def(resID) 默認展示圖片,當中途發生異常,展示默認的圖片

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

在實際開發中,我們不僅需要加載網絡圖片,還需要加載本地圖片,具體代碼如下:

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

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

緩存主要分為兩種,第一種:內存緩存,也就是我們經常說的MemoryCache,當首次加載圖片時,將圖片緩存至內存中,這樣用戶在有網的情況,再次訪問時,先加載內存緩存圖片,然后再去網絡請求最新的圖片。減少流量的浪費和增加用戶體驗感

第二種就是我們說的磁盤緩存:DiskCache,設計磁盤緩存的核心理念就是當前設備沒有網絡的情況,訪問該頁面,如果app有磁盤緩存,則顯示緩存的圖片。不至于用戶什么也看不到,這樣做的目的也是為了增加用戶體驗感。

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

  1. public static void savePixelMap(String key, PixelMap pixelMap) { 
  2.     if (!isCache(key)) { 
  3.         CACHE_LOADER.addBitmap(CacheUtils.hashKeyForCache(key), pixelMap); 
  4.     } 
  5. public static PixelMap getPixelMap(String key) { 
  6.     return CACHE_LOADER.getPixelMap(CacheUtils.hashKeyForCache(key)); 
  7.  

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

  1. // Add緩存 
  2. byte[] bytes = response.body().bytes(); 
  3. diskLruCacheImpl.addDiskCache(bytes, url); 
  4. // Get緩存 
  5. pixelMap = diskLruCacheImpl.getDiskCache(url); 
  6. if (pixelMap != null) { 
  7.     abilitySlice.getUITaskDispatcher().asyncDispatch(() -> { 
  8.         image.setPixelMap(pixelMap); 
  9.     }); 

緩存架構圖如下:

代碼如下:

  1. public static void savePixelMap(String key, PixelMap pixelMap) { 
  2.     if (!isCache(key)) { 
  3.         CACHE_LOADER.addBitmap(CacheUtils.hashKeyForCache(key), pixelMap); 
  4.     } 
  5. public static PixelMap getPixelMap(String key) { 
  6.     return CACHE_LOADER.getPixelMap(CacheUtils.hashKeyForCache(key)); 
  7.  

最終模擬器展示一張網絡圖片效果圖如下:

在實現的過程中,我們可以在任何地方去調用OhosGlide 去展示網絡圖片,比如ListContainer加載列表

最后附上項目源碼:https://github.com/isoftstone-dev/Gilde_HarmonyOS.git

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-03-31 09:50:25

鴻蒙HarmonyOS應用開發

2021-06-28 14:48:03

鴻蒙HarmonyOS應用

2021-01-18 09:52:20

鴻蒙HarmonyOS開發

2021-02-04 09:45:19

鴻蒙HarmonyOS應用開發

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-01-12 12:04:40

鴻蒙HarmonyOS應用開發

2021-01-20 09:54:56

鴻蒙HarmonyOS開發

2021-03-01 09:48:24

鴻蒙HarmonyOS應用開發

2021-02-24 15:22:47

鴻蒙HarmonyOS應用開發

2021-05-12 15:17:39

鴻蒙HarmonyOS應用

2021-02-04 13:06:38

鴻蒙HarmonyOS應用開發

2021-01-13 09:40:31

鴻蒙HarmonyOS開發

2021-04-16 09:28:18

鴻蒙HarmonyOS應用

2021-01-22 17:33:03

鴻蒙HarmonyOS應用開發

2021-02-26 14:15:27

鴻蒙HarmonyOS應用開發

2021-04-20 09:42:20

鴻蒙HarmonyOS應用開發

2021-03-01 14:01:41

鴻蒙HarmonyOS應用開發

2021-04-12 09:36:54

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-08-02 14:54:50

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 爱爱免费视频 | 视频一区二区中文字幕 | 欧美一区二区三区在线视频 | 午夜精品久久久久久久99黑人 | 国产一区二区电影 | 国产精品精品3d动漫 | 2020国产在线 | 日韩在线视频免费观看 | 国产精品成人国产乱 | 婷婷五月色综合 | 自拍第一页 | 成人黄色在线观看 | 国产视频在线一区二区 | 国产激情一区二区三区 | 欧美日韩一区二区三区四区五区 | 最新国产精品视频 | 爱综合 | 精品人伦一区二区三区蜜桃网站 | 国产免费人成xvideos视频 | 久久国产精品免费视频 | 九色porny自拍视频 | 欧美午夜激情在线 | 国产黄色免费网站 | 亚洲精品美女视频 | 国产精品久久久久久久久久久久 | 久久精品中文 | 精品久久香蕉国产线看观看亚洲 | 久久精品免费看 | 欧美成人免费在线 | 午夜午夜精品一区二区三区文 | 亚洲美女一区 | 久久夜夜 | 99免费在线视频 | 国产精品视频一区二区三区四蜜臂 | 日韩在线观看中文字幕 | 天天躁日日躁xxxxaaaa | 久久大 | 超碰日韩 | 激情91 | 成人影视网 | a中文在线视频 |