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

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

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

3天內不再提示

HarmonyOS開發案例:【image、image-animator組件】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-26 17:32 ? 次閱讀

介紹

OpenHarmony提供了常用的圖片、圖片幀動畫播放器組件,開發者可以根據實際場景和開發需求,實現不同的界面交互效果,包括:點擊陰影效果、點擊切換狀態、點擊動畫效果、點擊切換動效。

相關概念

  • [image組件]:圖片組件,用于圖片資源的展示。
  • [image-animator組件]:幀動畫播放器,用以播放一組圖片,可以設置播放時間、次數等參數。
  • [通用事件]:事件綁定在組件上,當組件達到事件觸發條件時,會執行JS中對應的事件回調函數,實現頁面UI視圖和頁面JS邏輯層的交互。

環境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release及以上版本。
  • OpenHarmony SDK版本:API version 9及以上版本。

硬件要求

  • 開發板類型:[潤和RK3568開發板]。
  • OpenHarmony系統:3.2 Release及以上版本。

環境搭建

完成本篇Codelab我們首先要完成開發環境的搭建,本示例以RK3568開發板為例,參照以下步驟進行:

  1. [獲取OpenHarmony系統版本]:標準系統解決方案(二進制)。以3.2 Release版本為例:
  2. 搭建燒錄環境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發板的燒錄]
  3. 搭建開發環境。
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發環境配置。
    2. 開發環境配置完成后,請參考[使用工程向導]創建工程(模板選擇“Empty Ability”)。
    3. 工程創建完成后,選擇使用[真機進行調測]。
    4. 鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

代碼結構解讀

本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在gitee中提供。

├──entry/src/main/js	              // 代碼區
│  └──MainAbility
│     ├──common
│     │  ├──constants
│     │  │  └──commonConstants.js     // 幀動畫數據常量
│     │  └──images
│     ├──i18n		                  // 中英文	
│     │  ├──en-US.json			
│     │  └──zh-CN.json			
│     └──pages
│        └──index
│           ├──index.css              // 首頁樣式文件	
│           ├──index.hml              // 首頁布局文件
│           └──index.js               // 首頁腳本文件
└──entry/src/main/resources           // 應用資源目錄

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789v直接拿`

搜狗高速瀏覽器截圖20240326151344.png

界面布局

本示例使用卡片布局,將四種實現以四張卡片的形式呈現在主界面。每張卡片都使用圖文結合的方式直觀地向開發者展示所實現效果。

每張卡片對應一個div容器組件,以水平形式分為左側文本和右側圖片兩部分。左側文本同樣是一個div容器組件,以垂直形式分為操作文本與效果描述文本。右側圖片則根據需要使用image組件或image-animator組件。當前示例中,前兩張卡片右側使用的是image組件,剩余兩張卡片使用的是image-animator組件。

< !-- index.hml -- >
< div class="container" >
    < !-- image組件的點擊效果 -- >
    < div class="card-container" for="item in imageCards" >
        < div class="text-container" >
            < text class="text-operation" >{{ contentTitle }}< /text >
            < text class="text-description" >{{ item.description }}< /text >
        < /div >
        < image class="{{ item.classType }}" src="{{ item.src }}" onclick="changeHookState({{ item.eventType }})"
               ontouchstart="changeShadow({{ item.eventType }},true)"
               ontouchend="changeShadow({{ item.eventType }},false)"/ >
    < /div >
	
    < !-- image-animator組件的點擊效果 -- >
    < div class="card-container" for="item in animationCards" >
        < div class="text-container" >
            < text class="text-operation" >{{ contentTitle }}< /text >
            < text class="text-description" >{{ item.description }}< /text >
        < /div >
        < image-animator id="{{ item.id }}" class="animator" images="{{ item.frames }}" iteration="1"
                        duration="{{ item.durationTime }}" onclick="handleStartFrame({{ item.type }})"/ >
    < /div >
< /div >

事件交互

為image組件添加touchstart和touchend事件,實現點擊圖片改變邊框陰影的效果,點擊觸碰結束時,恢復初始效果。

// index.js
// 點擊陰影效果
changeShadow(eventType, shadowFlag) {
  if (eventType === 'click') {
    return;
  }
  if (shadowFlag) {
    this.imageCards[0].classType = 'main-img-touch';
  } else {
    this.imageCards[0].classType = 'img-normal';
  }
}

為image組件添加click事件,實現點擊切換狀態并變換顯示圖片的效果。

// index.js
// 點擊切換狀態
changeHookState(eventType) {
  if (eventType === 'touch') {
    return;
  }
  if (this.hook) {
    this.imageCards[1].src = '/common/images/ic_fork.png';
    this.hook = false;
  } else {
    this.imageCards[1].src = '/common/images/ic_hook.png';
    this.hook = true;
  }
}

為image-animator組件添加click事件,實現點擊播放幀動畫效果。

// index.js
// 點擊動畫效果方法
handleStartFrame(type) {
  if (type === 'dial') {
    this.animationCards[0].durationTime = CommonConstants.DURATION_TIME;
    this.$element('dialAnimation').start();
  } else {
    if (this.animationCards[1].flag) {
      this.animationCards[1].frames = this.collapse;
      this.animationCards[1].durationTime = this.durationTimeArray[0];
      this.$element('toggleAnimation').start();
      this.animationCards[1].flag = false;
      this.$element('toggleAnimation').stop();
    } else {
      this.animationCards[1].frames = this.arrow;
      this.animationCards[1].durationTime = this.durationTimeArray[1];
      this.$element('toggleAnimation').start();
      this.animationCards[1].flag = true;
      this.$element('toggleAnimation').stop();
    }
  }
}

審核編輯 黃宇

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

    關注

    59

    文章

    2531

    瀏覽量

    43790
  • HarmonyOS
    +關注

    關注

    79

    文章

    2055

    瀏覽量

    32174
  • OpenHarmony
    +關注

    關注

    27

    文章

    3835

    瀏覽量

    18179
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CMOS Image sensor的基礎知識

    攝像機用來成像的感光元件叫做Image Sensor或Imager。目前廣泛使用的2種Image Sensor是CCD和CMOS Image Sensor(CIS)。
    的頭像 發表于 01-15 11:07 ?6129次閱讀
    CMOS <b class='flag-5'>Image</b> sensor的基礎知識

    HarmonyOS開發案例:【基礎組件Slider的使用】

    學習如何使用聲明式UI編程框架的基礎組件。本篇Codelab將會使用Image組件、Slider組件、Text組件共同實現一個可調節的風車動
    的頭像 發表于 05-10 16:01 ?994次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發案</b>例:【基礎<b class='flag-5'>組件</b>Slider的使用】

    解決HarmonyOS應用中Image組件白塊問題的有效方案

    HarmonyOS應用開發過程中,通過Image組件加載網絡圖片時,通常會經歷四個關鍵階段:組件創建、圖片資源下載、圖片解碼和刷新。當加載
    的頭像 發表于 02-17 10:08 ?966次閱讀
    解決<b class='flag-5'>HarmonyOS</b>應用中<b class='flag-5'>Image</b><b class='flag-5'>組件</b>白塊問題的有效方案

    鴻蒙應用開發image-animator幀動畫的播放

    `這里使用image-animator做了一個幀動畫的播放設置了四個按鈕控制動漫的播放效果stop: 停止播放圖片幀動畫。start: 開始播放圖片幀動畫。再次調用,重新從第1幀開始播放。pause
    發表于 04-28 10:16

    HarmonyOS實戰—Image組件的剪切和縮放

    1. Image圖片標簽概述:圖片(Image)是用來顯示圖片的組件。常見的屬性:id,長、寬、高等。具體可以參考華為開發手冊(組件的通用屬
    發表于 08-17 18:00

    HarmonyOS應用開發-ClickableImageJsDome體驗

    的設計。本DEMO主要涉及到的頁面元素有有image,image-animator,展現圖片資源在界面交互中幾種常見運用效果。旨在幫助開發人員快速了解HarmonyOS JSUI應用的
    發表于 06-18 11:42

    HarmonyOS實現幾種常見圖片點擊效果

    。 相關概念 ● ??image組件??:圖片組件,用于圖片資源的展示。 ● ??image-animator組件??:幀動畫播放器,用以播
    發表于 09-07 15:50

    Biosignal and Biomedical Image

    Biosignal and Biomedical Image Processing MATLAB based Applications
    發表于 02-17 23:09 ?0次下載
    Biosignal and Biomedical <b class='flag-5'>Image</b>

    Digital Image Processing (Hong

    Digital Image Processing:•What is an Image?Picture, photographVisual dataUsually two or three
    發表于 06-18 07:39 ?17次下載

    Image Compression - Spelling O

    Image Compression - Spelling Out the Options
    發表于 10-02 09:16 ?25次下載
    <b class='flag-5'>Image</b> Compression - Spelling O

    Image Matters為極端成像應用開發創新的高性能平臺

    Image Matters為極端成像應用開發創新的高性能平臺。
    的頭像 發表于 01-11 07:08 ?2101次閱讀

    Halcon教程:Image、Regiong、XLD基礎

    一 讀取的3種方式: read_image( image,'filename') ? ? ? //image 是輸出對象,后面是輸入文件的路徑和名稱 讀取多圖:? 1,申明一個數組,分別保存路徑
    的頭像 發表于 01-07 11:52 ?6075次閱讀
    Halcon教程:<b class='flag-5'>Image</b>、Regiong、XLD基礎

    HarmonyOS 應用開發-ClickableImageJsDome體驗

    的設計。本DEMO主要涉及到的頁面元素有有imageimage-animator,展現圖片資源在界面交互中幾種常見運用效果。旨在幫助開發人員快速了解 HarmonyOS JSUI應用
    的頭像 發表于 06-20 00:24 ?1318次閱讀
    <b class='flag-5'>HarmonyOS</b> 應用<b class='flag-5'>開發</b>-ClickableImageJsDome體驗

    OpenHarmony應用開發之ETS開發方式Image組件

    今天帶大家了解ETS開發方式中的Image組件
    的頭像 發表于 07-03 12:06 ?3818次閱讀
    OpenHarmony應用<b class='flag-5'>開發</b>之ETS<b class='flag-5'>開發</b>方式<b class='flag-5'>Image</b><b class='flag-5'>組件</b>

    鴻蒙ArkTS聲明式組件Image

    Image為圖片組件,常用于在應用中顯示圖片。Image支持加載[PixelMap]、[ResourceStr]和[DrawableDescriptor]類型的數據源,支持png、jpg、bmp、svg和gif類型的圖片格式。
    的頭像 發表于 06-23 20:32 ?1710次閱讀
    鴻蒙ArkTS聲明式<b class='flag-5'>組件</b>:<b class='flag-5'>Image</b>
    主站蜘蛛池模板: 一区二区三区免费视频网站 | 国产日韩精品一区二区在线观看 | 欧美日韩影院 | 黄色网日本 | 国产亚洲人成a在线v网站 | 午夜美女久久久久爽久久 | 欧美图片小说视频 | 26uuu另类欧美亚洲曰本 | 99久久久久久久 | 天天综合天天做 | 国语自产免费精品视频一区二区 | 激情五月综合 | 欧美一区二区高清 | 亚洲欧美视频一区二区三区 | 午夜精品在线观看 | 色视频免费看 | 日韩精品视频免费观看 | 亚洲毛片儿 | 丁香激情六月天 | 五月天亚洲 | 国产三级在线免费 | 天天射天天干 | 5月丁香6月婷婷 | 免费黄色一级 | h网址在线观看 | 日韩免费高清一级毛片在线 | 成年啪啪网站免费播放看 | 色色色色色色网 | 免费一级成人毛片 | 永久免费视频 | 日本一区免费看 | 国产美女精品一区二区三区 | 性久久久久 | 色婷婷狠狠久久综合五月 | 国内精品久久久久影院薰衣草 | 天天射天天舔 | 中文字幕在线色 | 一级黄色毛片播放 | 天天视频国产免费入口 | 色综合五月婷婷 | 四虎永久在线观看视频精品 |