伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

華為圖庫服務卡片是如何實現的

HarmonyOS開發者 ? 來源:HarmonyOS開發者 ? 作者:HarmonyOS開發者 ? 2021-08-04 14:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

華為圖庫本身有很多功能,按照傳統App的交互方式,用戶都是需要先進入圖庫應用,然后再找到相應功能進行使用。隨著App功能越做越多,其傳統的交互方式也漸漸顯露出繁瑣的地方。

因此考慮在圖庫中采用服務卡片技術,把圖庫App中希望用戶能快速使用的,具備競爭力的功能直接通過卡片方式釋放出來。比如:圖庫的相冊卡片能夠直接讓用戶在桌面上直接瀏覽相冊圖片,圖庫的創作卡片可以讓用戶從桌面上一步進入視頻編輯或拼圖創作。

本文會為大家介紹圖庫服務卡片的規格、功能,解析圖庫服務卡片整體的設計思路以及內部模塊結構,并且就圖庫服務卡片幾個關鍵功能點的具體實現進行展開,當然也會就服務卡片開發過程中可能會遇到的問題提供一些建議。

1圖庫服務卡片功能簡介1卡片樣式

圖庫服務卡片按照功能劃分為:相冊卡片和創作卡片。

相冊卡片方便用戶直接查看圖片內容,按照樣式又可以劃分為2x2、2x4、4x4三種。創作卡片方便用戶快速使用圖庫應用的內容創作功能,只有2x4一種樣式。這里2x2即是指占桌面4個圖標位置,其他以此類推。

2卡片呼出方式用戶可以通過兩種方式呼出圖庫服務卡片,一種是在圖庫應用的桌面圖標上滑。另一種是長按桌面卡片就會出現一個彈框。用戶點擊更多服務卡片,就能看到有多個可選的圖庫服務卡片樣式,用戶任選一個就能設置到桌面上。3照片的選擇和瀏覽功能

用戶長按一個相冊卡片會出現一個彈框,用戶點擊編輯就能對相冊卡片設置顯示某張圖片或者某個相冊。用戶直接單擊相冊卡片封面就能直接以大圖的方式瀏覽當前卡片顯示的圖片。

4照片輪播功能

桌面上添加了多個相冊卡片,每個卡片都顯示了不同的相冊,在到了設定的輪播間隔時間后,卡片的封面就會自動切換到相冊中的下一張圖。

5內容創作功能

創作卡片上有三塊區域:微電影創作、自由創作和拼圖創作,用戶分別點擊這些不同的區域就能夠進入圖庫應用對應的功能,快速開始內容創作。

2圖庫服務卡片方案設計1功能模塊設計

下圖展示了圖庫服務卡片與卡片使用方、系統卡片管理服務以及圖庫應用三者之間的邏輯關系。

圖庫服務卡片的核心數據包括:卡片ID、卡片類型、卡片內容ID、卡片內容類型,這些核心數據都需要從圖庫應用獲取。

圖庫服務卡片通過系統卡片管理服務將卡片內容呈現到卡片使用方,例如桌面。

桌面點擊不同卡片的事件傳遞到了圖庫服務卡片內部的路由跳轉模塊,根據路由跳轉匹配項,進入圖庫應用的圖片選擇、圖片瀏覽、內容創作等功能。

2與DevEco Studio中卡片模板的關系圖庫服務卡片是基于HarmonyOS服務卡片模板開發。在DevEco Studio中選擇了一個服務卡片模板,即可以快速實現一個具備基本功能的服務卡片,圖庫服務卡片在圖庫卡片模板基礎上重新實現了相冊卡片控制器(AlbumCardControllerlmpl)和創作卡片控制器(DiscoveryCardControllerlmpl),配合自定義的UI和業務邏輯,使得卡片服務得到完整的實現。

卡片控制器是實現卡片功能和行為的關鍵類。我們可以看到服務卡片模板的核心類圖與圖庫服務卡片的核心類圖高度相似。因此這里也推薦大家持續關注華為定期發布的各種HarmonyOS服務卡片模板,基于合適的服務卡片模板開發可以提升開發效率。

3圖庫服務卡片關鍵功能實現我們將從路由跳轉設計、深淺色模式適配和顯示圖片這三個關鍵功能點來展開對于圖庫服務卡片實現的說明。1路由跳轉設計用戶點擊相冊卡片和創作卡片分別能跳轉到圖庫應用的不同界面。

我們看一下代碼中相冊卡片和創作卡片的UI層事件定義。

相冊卡片的UI上有個swipper組件,它的onclick屬性關聯了一個index.json中的routerEvent,這個routerEvent配置了一個jumpToSinglePhoto的action,其目標Ability是SpringBoardAbility。

創作卡片UI內有一個div組件,它的onclick屬性關聯了一個index.json中的routerCreateCollages,這個routerCreateCollages配置了一個jumpToCreateColleges的action,其目標Ability同樣是SpringBoardAbility。

而SpringBoardAbility.java文件中的onStart函數中的入參intent,可以解析出不同的action,根據不同的action值,我們完成了不同功能Ability的跳轉,例如跳轉到圖片瀏覽或者內容創作。這種UI和功能路由解耦的實現方式,一方面減少了卡片UI層對圖庫應用具體功能的邏輯依賴,另一方面也有利于后續卡片功能擴展和維護。2深淺色模式適配如下圖所示,系統進入深色模式,創作卡片底色就是深色,系統進入淺色模式,創作卡片底色就變成淺色。

24181560-f3a9-11eb-9bcf-12bb97331649.png

創作卡片的Index.hml文件的div組件中,有一個樣式的定義—row_layout。在index.css文件中對其有深色模式、淺色模式的兩套定義。media這個注解中的dark-mode參數依據系統當前顯示模式進行判定,如果是系統進入深色模式dark-mode為true,row_layout的樣式值就是左邊這一套,反之就是右邊這一套。以此實現UI對系統深淺色模式的動態適配。

2511b692-f3a9-11eb-9bcf-12bb97331649.png

3顯示圖片內容圖庫應用圖標上滑后卡片內容呼出時的樣子。

在卡片呼出時,即FormAbility的onCreateForm回調被調用,我們發起了卡片內容獲取任務,即去圖庫應用查找當前卡片應該顯示的圖片,獲取圖片內容,并將圖片內容更新到卡片界面上。這個任務我們采用異步線程的運行方式,沒有在onCreateForm中直接返回封裝卡片內容的ProviderFormInfo對象,是為了防止查詢和解碼圖片過程的耗時導致卡片本身加載顯示緩慢。

26518ac8-f3a9-11eb-9bcf-12bb97331649.png

按照規則,圖庫的相冊卡片上滑呼出時,默認會使用相機相冊中的首張圖片作為卡片封面。我們根據相機相冊的id,獲取相機圖庫路徑信息Uri,再根據Uri查詢到相機相冊內的一批圖片信息列表,并將圖庫列表中首張圖信息作為返回值。如果當前圖庫為空,那么將對圖庫卡片設置一張默認的圖片作為卡片封面。

2679d0aa-f3a9-11eb-9bcf-12bb97331649.png

根據圖片路徑信息Uri,開始計算圖片解碼參數。考慮到用戶圖片不同高寬比和大小不一的情況,在不同尺寸的相冊卡片上,圖片顯示不能變形,不能加載超大的原圖顯示到卡片上影響加載效率。因此就要做一些圖片解碼參數的計算與設置,例如:計算圖片降采樣率計算,圖片裁剪區域設置,和不同圖片旋轉方向的圖片高寬縮放設置。完成相關的解碼參數計算和設置之后,就能通過界面接口(imageSource.createPixelmap)獲得圖片pixelMap對象。

2733e288-f3a9-11eb-9bcf-12bb97331649.png

接著把pixelMap對象按照如下代碼打包,得到一個圖像字節數組。至此卡片所需的圖片內容準備完畢。

276eb3a4-f3a9-11eb-9bcf-12bb97331649.png

在將圖像字節數組更新顯示到UI界面前,要做一次數據封裝,把字節數組封裝到FormBindingData對象中。首先在zsonObject中設置圖片的url,然后將圖片字節流通過addImageData直接添加到FormBindingData對象中,這里我們可以看到url和字節流通過圖片名稱關聯了起來。

27973bf8-f3a9-11eb-9bcf-12bb97331649.png

27ef969a-f3a9-11eb-9bcf-12bb97331649.png

最終將已經封裝了圖片信息的FormBindingData對象通過ability的updateForm方法推送給UI層,UI層的image組件解析到image字段就能獲取圖片的url信息,進而通過圖片的url信息獲得圖片的字節流,最終完成圖片內容的界面顯示。

2806bffa-f3a9-11eb-9bcf-12bb97331649.png

4服務卡片開發建議

問題場景一:

桌面創建了多個卡片,切換系統語言后,快速返回桌面,桌面進程重啟,用戶看到卡片一個一個慢慢顯示。

問題原因:

onCreateForm方法中有耗時操作,影響了卡片加載速度。

解決辦法:

避免在服務卡片生命周期回調中出現耗時操作。

問題場景二:

當桌面在后臺時,相冊卡片不顯示,但圖片內容(旋轉或其他編輯動作)發生變化,卡片應用主動調用Ability的updateForm方法無法及時更新卡片內容。

問題原因:

當桌面在后臺時,界面繪制任務暫停,卡片提交的內容更新不會及時響應處理。

解決辦法:

在卡片生命周期的onUpdateForm方法中調用Ability的updateForm方法更新卡片最新內容,如下圖所示:

29192644-f3a9-11eb-9bcf-12bb97331649.png

讀完了這個基于華為圖庫服務卡片開發實踐,是不是讓你對于卡片開發有了更深刻的認識

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    218

    文章

    36122

    瀏覽量

    262438

原文標題:一文帶你讀懂華為圖庫服務卡片是如何實現的

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    服務交易評價

    用戶在元服務的交易決策,同時也能幫助開發者了解用戶反饋,促進服務質量的改進。 功能覆蓋范圍 在華為應用市場上架的元服務。 已開通華為支付。
    發表于 12-29 10:35

    服務發布準備工作

    發布元服務前,請詳細了解華為應用市場的審核要求,并提前準備發布所需的文件、資源,以便您能順利、快速通過發布審核流程。 仔細閱讀元服務審核指南,了解發布元服務
    發表于 10-10 15:48

    速通華為全聯接大會2025!華為怎樣打破智能化的天花板?

    華為
    腦極體
    發布于 :2025年09月29日 10:07:25

    全球應用加速服務如何實現?網絡服務推薦排行榜

    和提高訪問速度,同時提供安全防護和負載均衡功能。本文將深入解析全球應用加速服務實現方式,并為您呈現2025年網絡服務提供商排行榜。一、全球應用加速服務
    的頭像 發表于 09-10 09:48 ?1941次閱讀
    全球應用加速<b class='flag-5'>服務</b>如何<b class='flag-5'>實現</b>?網絡<b class='flag-5'>服務</b>推薦排行榜

    HarmonyOSAI編程萬能卡片生成(二)

    工程保存完成后,工程中會新增如下卡片相關文件: 自定義配置邏輯代碼 邏輯代碼包含實現卡片數據交互和卡片事件兩類。 卡片數據交互:觸發
    發表于 09-09 16:10

    HarmonyOSAI編程萬能卡片生成(一)

    基于AI大模型理解開發者的卡片需求信息,通過對話式的交互智能生成HarmonyOS萬能卡片工程。 使用約束 建議從以下維度描述卡片需求: 當前不支持在生成卡片預覽圖后繼續描述需求進行增
    發表于 09-08 17:09

    HarmonyOS AI輔助編程工具(CodeGenie)卡片生成

    、 自定義配置邏輯代碼 邏輯代碼包含實現卡片數據交互和卡片事件兩類。 卡片數據交互:觸發卡片頁面刷新。應用工程生成的
    發表于 08-12 11:04

    FA模型卡片和Stage模型卡片切換

    卡片切換 卡片切換主要包含如下三部分: 卡片頁面布局:FA模型卡片和Stage模型卡片的布局都采用類web范式開發可以直接復用。
    發表于 06-06 08:10

    HarmonyOS5云服務技術分享--自有賬號對接AGC認證

    體系(比如自研的用戶系統),通過AGC的??自有賬號認證??功能,可以快速接入AGC的認證服務實現: ??擴展認證方式??:讓用戶既可以用自有賬號登錄,也能使用AGC支持的第三方登錄(比如華為賬號、微
    發表于 05-22 16:32

    【HarmonyOS NEXT】華為分享-碰一碰開發分享

    關鍵詞:鴻蒙、碰一碰、systemShare、harmonyShare、Share Kit 華為分享新推出碰一碰分享,支持用戶通過手機碰一碰發起跨端分享,可實現傳輸圖片、共享wifi等。我們只需調用
    發表于 05-16 16:19

    鴻蒙應用元服務開發-Account Kit配置登錄權限

    一、場景介紹 華為賬號登錄是基于OAuth 2.0協議標準和OpenID Connect協議標準構建的OAuth2.0 授權登錄系統,元服務可以方便地獲取華為賬號用戶的身份標識,快速建立元服務
    發表于 04-15 16:03

    華為服務器診斷工具

    華為服務器診斷工具,顯示888首選
    發表于 04-14 14:08 ?0次下載

    鴻蒙應用元服務開發-Account Kit獲取手機號

    Button實現了Account Kit快速驗證功能: 約束與限制 元服務滿足《常見類型移動互聯網應用程序必要個人信息范圍規定》(對第三方網站的內容,華為不承擔任何責任)中使用手機號的必要業務場景
    發表于 04-08 16:14

    鴻蒙應用元服務開發-Account Kit獲取華為賬號用戶信息概述

    如元服務需要完善用戶頭像信息,可通過調用Scenario Fusion Kit提供的選擇頭像Button,拉起Account Kit頭像選擇頁面,供用戶完成華為賬號頭像或其他頭像的選擇,實現頭像信息
    發表于 04-02 11:10