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

鴻蒙應(yīng)用開發(fā):如何與組件庫(kù)(Glide)銜接?

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

[[426400]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

Android 發(fā)展到現(xiàn)在不僅提供了很多 API,還提供了很多第三方庫(kù)。這降低了我們開發(fā)者的開發(fā)難度,提升了開發(fā)效率,讓應(yīng)用開發(fā)更加的簡(jiǎn)單高效。眾所周知,HarmonyOS 除了提供 16000 多個(gè) API 外也是支持組件庫(kù)的調(diào)用的,那么鴻蒙應(yīng)用開發(fā)是如何與第三方庫(kù)銜接的呢?

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

以后要引入我廠即構(gòu) ZEGO Express SDK 鴻蒙版本的時(shí)候可以根據(jù)以下的依賴方式,開發(fā)過(guò)程中需要圖片的加載,也可以借鑒以下的圖片加載過(guò)程。

一、 組件庫(kù)(Glide)的依賴方式

HarmonyOS 應(yīng)用開發(fā)提供了三種常用的組件庫(kù)引入方式,以下的三種依賴方式都是在 build.grade 中操作。

1. Maven 倉(cāng)的依賴方式

以下驗(yàn)證過(guò)程的圖片加載庫(kù) Glide 采用的就是這種方式。

步驟一:

  1. allprojects { 
  2.     repositories { 
  3.         maven { 
  4.             url 'https://repo.huaweicloud.com/repository/maven/'  
  5.         } 
  6.         jcenter() 
  7.         mavenCentral() 
  8.     } 

 步驟二:

  1. dependencies { 
  2.  implementation fileTree(dir: 'libs', include: ['*.jar''*.har']) 
  3.  implementation 'io.openharmony.tpc.thirdlib:glide:1.1.2' 

2. Module 的依賴方式

  1. dependencies { 
  2.  implementation fileTree(dir: 'libs', include: ['*.jar''*.har']) 
  3.  implementation project(path: ':glidelibrary'

如果在setting.gradle 沒(méi)有對(duì)該 glidelibrary 的配置,就要手動(dòng)添加,如下:

  1. include ':entry'':glidelibrary' 

3. Har 包的依賴方式

  1. dependencies { 
  2.  implementation fileTree(dir: 'libs', include: ['*.jar''*.har']) 

二、 組件庫(kù)(Glide)的使用

1. 配置

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

允許 HTTP 的請(qǐng)求:

  1. "deviceConfig": { 
  2.   "default": { 
  3.     "network": { 
  4.       "cleartextTraffic"true 
  5.     } 
  6.   } 

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

  1. "module": { 
  2.     "reqPermissions": [ 
  3.       { 
  4.         "name""ohos.permission.INTERNET" 
  5.       }                    
  6.     ] 

2. 加載圖片

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

調(diào)用方式:

  1. Image image = (Image)findComponentById(ResourceTable.Id_img); 
  2. //Load Image from Internet(圖片來(lái)源于 即構(gòu)官網(wǎng)的網(wǎng)絡(luò)圖) 
  3. String imagePath = "https://www.zego.im/_nuxt/img/53992d2.png"
  4. //Load Image from Resource Folder(本地圖片) 
  5. int imageResourceId = ResourceTable.Media_zego_img; 
  6. Glide.with(this) 
  7.         .load(imagePath) 
  8.         .diskCacheStrategy(DiskCacheStrategy.NONE) 
  9.         .skipMemoryCache(true
  10.         .into(image); 

 運(yùn)行結(jié)果顯示:

鴻蒙應(yīng)用開發(fā):如何與組件庫(kù)(Glide)銜接?-鴻蒙HarmonyOS技術(shù)社區(qū)

3. 加載GIF動(dòng)圖

加載的GIF 圖可以是網(wǎng)絡(luò)圖片,也可以說(shuō)本地圖片。

調(diào)用方式:

  1. DraweeView draweeView = (DraweeView) findComponentById(ResourceTable.Id_draweeView); 
  2. String imagePath = "load gif from network"
  3. int imageResourceId = "load gif from native"
  4. Glide.with(this) 
  5.         .asGif() 
  6.         .load(imageResourceId) 
  7.                 .into(draweeView); 

 HarmonyOS 的Image 不支持gif 的加載,因?yàn)镮mage和Element是獨(dú)立的,不能使用Element重繪。所以 Glide 要使用 gif 的能力就要使用 DraweeView 。

  1. <com.bumptech.glide.load.resource.gif.drawableability.DraweeView 
  2.     ohos:id="$+id:draweeView" 
  3.     ohos:height="180vp" 
  4.     ohos:width="180vp" 
  5.     ohos:layout_alignment="center"/> 

 因?yàn)榧虞d gif 的過(guò)程,對(duì)系統(tǒng)的性能消耗是非常大的,所以在使用完的時(shí)候要及時(shí)釋放資源,防止內(nèi)存泄漏。

  1. @Override 
  2. protected void onBackground() { 
  3.     super.onBackground(); 
  4.     draweeView.stopGif(); 

4. 加載圓角圖片

加載圓角圖片,把圓角 raduis 傳進(jìn)來(lái),就可以繪制圓角度。

  1. public class GlideRoundTransform extends BitmapTransformation { 
  2.  
  3.     private static float radius = 0f; 
  4.  
  5.     public GlideRoundTransform(Context context) { 
  6.         this(context, 0); 
  7.     } 
  8.  
  9.     public GlideRoundTransform(Context context, int dp) { 
  10.         super(); 
  11.         this.radius = dp; 
  12.     } 
  13.  
  14.     @Override 
  15.     protected PixelMap transform(@NonNls BitmapPool pool, @NonNls PixelMap toTransform, int outWidth, int outHeight) { 
  16.         int width = toTransform.getImageInfo().size.width; 
  17.         int height = toTransform.getImageInfo().size.height; 
  18.  
  19.         PixelFormat config = 
  20.                 toTransform.getImageInfo() != null ? toTransform.getImageInfo().pixelFormat : PixelFormat.ARGB_8888; 
  21.         PixelMap bitmap = pool.get(width, height, config); 
  22.  
  23.         setCanvasBitmapDensity(toTransform, bitmap); 
  24.  
  25.         Canvas canvas = new Canvas(new Texture(bitmap)); 
  26.         canvas.drawPixelMapHolderRoundRectShape(new PixelMapHolder(toTransform), new RectFloat(0, 0, width, height), new RectFloat(0, 0, width, height), radius, radius); 
  27.         return bitmap; 
  28.     } 
  29.  
  30.     @Override 
  31.     public void updateDiskCacheKey(MessageDigest messageDigest) { 
  32.  
  33.     } 
  34.  

調(diào)用方式:

  1. Image image = (Image) findComponentById(ResourceTable.Id_img); 
  2. RequestOptions myOptions = new RequestOptions().transform(new GlideRoundTransform(getContext(), 30)); 
  3. Glide.with(this) 
  4.         .load(ResourceTable.Media_zego_img_round) 
  5.         .diskCacheStrategy(DiskCacheStrategy.NONE) 
  6.         .skipMemoryCache(true
  7.         .fitCenter() 
  8.         .apply(myOptions) 
  9.         .into(image); 

總結(jié)

通過(guò)對(duì) Glide 的引入過(guò)程與實(shí)現(xiàn)過(guò)程,跟Android 第三方庫(kù)引入與圖片加載沒(méi)有很大的區(qū)別。

舉一反三,我們可以很輕松的引入其他的組件庫(kù),也可以通過(guò) Glide 實(shí)現(xiàn)其他的圖片加載效果。同時(shí)一起期待我廠 即構(gòu) ZEGO Express SDK 的鴻蒙版本吧。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2022-02-10 15:14:50

HarmonyOS操作系統(tǒng)鴻蒙

2021-08-31 14:56:51

鴻蒙HarmonyOS應(yīng)用

2021-03-19 17:42:01

鴻蒙HarmonyOS應(yīng)用開發(fā)

2014-10-15 14:07:21

AndroidGlide組件

2016-02-26 09:48:49

APIAlluxio存儲(chǔ)

2020-11-09 11:56:49

HarmonyOS

2011-09-15 09:31:32

云計(jì)算PaaS私有云

2021-04-23 16:08:08

鴻蒙HarmonyOS應(yīng)用

2009-06-24 17:05:10

2020-09-28 15:13:04

鴻蒙

2019-01-15 14:11:50

Android框架組件化

2023-02-17 08:22:05

AndroidGlide

2024-08-28 17:55:43

HarmonyOS

2020-08-10 07:00:00

SaaS開發(fā)IT

2021-01-18 13:17:04

鴻蒙HarmonyOSAPP

2011-06-24 16:19:59

QT web Webkit

2010-04-15 16:16:57

Oracle數(shù)據(jù)庫(kù)應(yīng)用

2009-08-14 17:08:00

Android應(yīng)用程序

2011-11-24 21:25:15

ibmdw

2013-03-08 09:49:46

應(yīng)用開發(fā)移動(dòng)應(yīng)用雷區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产大片黄色 | 色网站入口 | 国产日韩欧美一区 | 国产高清无av久久 | 欧美一级欧美三级在线观看 | 日韩一区二区免费视频 | 国内在线视频 | 成人在线视频免费观看 | 成人在线不卡 | 99精品国产一区二区三区 | 免费视频久久久久 | 国产乱码精品一区二区三区忘忧草 | 精品伊人久久 | 久热爱| 午夜视频在线免费观看 | 亚洲一级二级三级 | 久久69精品久久久久久久电影好 | 精品视频在线一区 | xxxcom在线观看| 国产综合av | 久久不射网 | 2020国产在线 | 成人a在线 | 久久99精品久久久久久国产越南 | 黄色av免费网站 | 日韩一区精品 | 久久精品视频一区二区 | 视频一区二区三区四区五区 | 秋霞在线一区二区 | 国产在线成人 | 免费一区| 日韩av免费在线电影 | 免费看片在线播放 | 国产成人99久久亚洲综合精品 | 91精品一区 | 激情 亚洲| 91精品久久久久久久久99蜜臂 | 日韩在线一区二区 | 91在线免费视频 | 久久久婷 | 亚洲欧美日韩一区二区 |