一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

HarmonyOS開發(fā)案例:【 slider組件的使用】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-25 22:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

主要介紹slider滑動條組件的使用。如圖所示拖動對應(yīng)滑動條調(diào)節(jié)風(fēng)車的旋轉(zhuǎn)速度以及縮放比例。

相關(guān)概念

  • [slider組件]:滑動條組件,通常用于快速調(diào)節(jié)設(shè)置值,如音量調(diào)節(jié)、亮度調(diào)節(jié)等應(yīng)用場景。

環(huán)境搭建

軟件要求

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

硬件要求

  • 開發(fā)板類型:[潤和RK3568開發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release及以上版本。

環(huán)境搭建

完成本篇Codelab我們首先要完成開發(fā)環(huán)境的搭建,本示例以RK3568開發(fā)板為例,參照以下步驟進(jìn)行:

  1. [獲取OpenHarmony系統(tǒng)版本]:標(biāo)準(zhǔn)系統(tǒng)解決方案(二進(jìn)制)。以3.2 Release版本為例:
  2. 搭建燒錄環(huán)境。
    1. [完成DevEco Device Tool的安裝]
  3. 搭建開發(fā)環(huán)境。
    1. 開始前請參考[工具準(zhǔn)備],完成DevEco Studio的安裝和開發(fā)環(huán)境配置。
    2. 開發(fā)環(huán)境配置完成后,請參考[使用工程向?qū)創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機(jī)進(jìn)行調(diào)測]。
    4. 鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

代碼結(jié)構(gòu)解讀

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

`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

├──entry/src/main/js                          // 代碼區(qū)
│  └──MainAbility
│     ├──common
│     │  ├──constants
│     │  │  └──constants.js                   // 常量定義文件
│     │  └──images
│     │     ├──ic_speed.png                   // 速度標(biāo)識圖片
│     │     └──ic_windmill.png                // 風(fēng)車圖片
│     ├──i18n
│     │  ├──en-US.json                        // 英文國際化
│     │  └──zh-CN.json                        // 中文國際化
│     ├──pages
│     │   └──index
│     │     ├──index.css                      // 界面樣式
│     │     ├──index.hml                      // 主界面
│     │     └──index.js                       // slider組件事件邏輯
│     └───app.js                              // 程序入口
└──entry/src/main/resource                    // 應(yīng)用靜態(tài)資源目錄

頁面布局

界面主要由上方風(fēng)車圖片展示區(qū)域及下方滑動條功能區(qū)域兩部分組成,滑動條功能區(qū)域包含調(diào)節(jié)旋轉(zhuǎn)速度的滑動條組件和調(diào)節(jié)縮放比例的滑動條組件。

圖片區(qū)域

使用image組件加載示例圖片,src屬性標(biāo)識圖片路徑。transform: scale控制圖片大小,animation-duration動畫樣式用來定義圖形旋轉(zhuǎn)一周所用的時間。本篇Codelab設(shè)置圖片縮放起始倍數(shù)為1,旋轉(zhuǎn)一周需要的默認(rèn)時間為5000ms。

< !-- index.hml -- >
< div class="top-block" >
    < div class="image-block" style="transform: scale({{ imageSize }});" >
        < image class="image-show" src="{{ imgUrl }}" style="animation-duration: {{ animationDuration }}; "/ >
    < /div >    
< /div >
// index.js
export default {
  data: {
    imgUrl: Constants.IMG_URL,
    animationDuration: Constants.ANIMATION_DURATION,
    imageSize: Constants.INIT_IMAGE_SIZE,
    ...
  }
};

// constants.js
export default class Constants {
  static IMG_URL = '/common/images/ic_windmill.png';
  static INIT_IMAGE_SIZE = 1;
  static ANIMATION_DURATION = '5000ms';
  ...
};

滑動條功能區(qū)域

創(chuàng)建兩個slider組件實(shí)現(xiàn)控制風(fēng)車的轉(zhuǎn)動速度以及風(fēng)車縮放的大小。配置slider組件最大進(jìn)度值為100,最小進(jìn)度值為1,初始進(jìn)度值為50,滑動條樣式設(shè)置為滑塊在滑桿內(nèi)inset。分別為兩個組件添加事件changeSpeed以及changeSize,用于處理滑塊滑動事件。

< !-- index.hml -- >
< div class="bottom-block" >
    ...
    < div class="slider-block" >
        < image class="speed-slow-img" src="{{ speedImg }}" >< /image >
        < slider min="{{ minSpeed }}" max="{{ maxSpeed }}" value="{{ speed }}" onchange="changeSpeed" mode="inset" >< /slider >
        < image class="speed-fast-img" src="{{ speedImg }}" >< /image >
    < /div >
    ...
    < div class="slider-block" >
        < text class="text-small" >A< /text >
            < slider min="{{ minSize }}" max="{{ maxSize }}" value="{{ size }}" onchange="changeSize" mode="inset" >< /slider >
        < text class="text-big" >A< /text >
    < /div >
< /div >

風(fēng)車旋轉(zhuǎn)效果

實(shí)現(xiàn)風(fēng)車旋轉(zhuǎn)的動畫效果需要在加載風(fēng)車圖片的image組件上配置如下樣式:

  • animation-name:設(shè)置動畫執(zhí)行的操作。
  • animation-iteration-count:定義動畫播放的次數(shù)。
  • animation-timing-function:描述動畫執(zhí)行的速度曲線,使動畫更加平滑。
/* index.css */
/* 風(fēng)車圖片布局 */
.image-show {
    /* 動畫執(zhí)行的操作 */
    animation-name: Go;

    /* 動畫播放的次數(shù):無限 */
    animation-iteration-count: infinite;

    /* 動畫勻速播放 */
    animation-timing-function: linear;
}

/* 圖片旋轉(zhuǎn)角度:0°到360° */
@keyframes Go {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

滑動條調(diào)整功能

移動控制速度的slider組件滑塊時,觸發(fā)slider組件事件。事件類型為end或click時,表示滑動結(jié)束或點(diǎn)擊滑動條的某處,此時slider組件的進(jìn)度值停止改變。獲取當(dāng)前進(jìn)度值計算動畫持續(xù)時長數(shù)值,使用計算結(jié)果更新動畫播放時間。

// constants.js
// 動畫最長持續(xù)時間
static MAX_ANIMATION_DURATION = 10000;

// 動畫持續(xù)時間倍數(shù)
static ANIMATION_DURATION_MULTIPLE = 95;

// 毫秒縮寫
static MILLISECOND_ABBREVIATION = "ms";

// index.js
export default {
  /**
   * 修改轉(zhuǎn)速
   * @param event : slider組件事件
   */
  changeSpeed(event) {
    if (event.mode === Constants.SLIDER_EVENT_MODE_END || event.mode === Constants.SLIDER_EVENT_MODE_CLICK) {
      this.speed = event.value;

      // 計算動畫播放時間
      this.animationDurationNum = Constants.MAX_ANIMATION_DURATION -
        (event.value * Constants.ANIMATION_DURATION_MULTIPLE);
      this.animationDuration = this.animationDurationNum + Constants.MILLISECOND_ABBREVIATION;
    }
  }
};

移動控制縮放比例的slider組件滑塊時,觸發(fā)slider組件事件。事件類型為end或click時,表示滑動結(jié)束或點(diǎn)擊滑動條的某處,此時slider組件的進(jìn)度值停止改變。獲取當(dāng)前進(jìn)度值計算縮放比例,計算結(jié)果保留2位小數(shù)。

// constants.js
// 縮放比例計算數(shù)值
static HALF_HUNDRED = 50;

// 最小縮放比例 
static MIN_IMAGE_SIZE = 0.1;

// index.js
export default {
  /**
   * 修改縮放比例
   * @param event : slider組件事件
   */
  changeSize(event) {
    if (event.mode === Constants.SLIDER_EVENT_MODE_END || event.mode === Constants.SLIDER_EVENT_MODE_CLICK) {
      this.size = event.value;
      // 圖片縮放比例范圍:0.1到2
      this.imageSize = (this.size / Constants.HALF_HUNDRED) < Constants.MIN_IMAGE_SIZE ?
        Constants.MIN_IMAGE_SIZE : (this.size / Constants.HALF_HUNDRED);
      this.imageSize = this.imageSize.toFixed(2);
    }
  }
};

審核編輯 黃宇

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

    關(guān)注

    60

    文章

    2620

    瀏覽量

    44063
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33089
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3854

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS開發(fā)案例:【image、image-animator組件

    OpenHarmony提供了常用的圖片、圖片幀動畫播放器組件,開發(fā)者可以根據(jù)實(shí)際場景和開發(fā)需求,實(shí)現(xiàn)不同的界面交互效果,包括:點(diǎn)擊陰影效果、點(diǎn)擊切換狀態(tài)、點(diǎn)擊動畫效果、點(diǎn)擊切換動效。
    的頭像 發(fā)表于 04-26 17:32 ?1935次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【image、image-animator<b class='flag-5'>組件</b>】

    HarmonyOS開發(fā)案例:【使用List組件實(shí)現(xiàn)商品列表】

    OpenHarmony ArkTS提供了豐富的接口和組件開發(fā)者可以根據(jù)實(shí)際場景和開發(fā)需求,選用不同的組件和接口。
    的頭像 發(fā)表于 05-10 16:41 ?2066次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【使用List<b class='flag-5'>組件</b>實(shí)現(xiàn)商品列表】

    HarmonyOS開發(fā)案例:【W(wǎng)eb組件實(shí)現(xiàn)抽獎】

    基于ArkTS的聲明式開發(fā)范式的樣例,主要介紹了Web組件如何加載本地和云端H5小程序。
    的頭像 發(fā)表于 05-09 18:31 ?1672次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【W(wǎng)eb<b class='flag-5'>組件</b>實(shí)現(xiàn)抽獎】

    HarmonyOS開發(fā)案例:【基礎(chǔ)組件Slider的使用】

    學(xué)習(xí)如何使用聲明式UI編程框架的基礎(chǔ)組件。本篇Codelab將會使用Image組件、Slider組件、Text組件共同實(shí)現(xiàn)一個可調(diào)節(jié)的風(fēng)車動
    的頭像 發(fā)表于 05-10 16:01 ?1062次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【基礎(chǔ)<b class='flag-5'>組件</b><b class='flag-5'>Slider</b>的使用】

    HarmonyOS開發(fā)案例:【常用組件與布局】

    HarmonyOS ArkUI提供了豐富多樣的UI組件,您可以使用這些組件輕松地編寫出更加豐富、漂亮的界面。
    的頭像 發(fā)表于 05-09 18:20 ?1790次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【常用<b class='flag-5'>組件</b>與布局】

    HarmonyOS IoT 硬件開發(fā)案例分享

    ``許思維老師HiSpark Wi-Fi IoT 開發(fā)案例分享:案例一:AHT20溫濕度傳感器開發(fā)、調(diào)試;案例二:oled屏驅(qū)動庫移植,調(diào)試;案例三:用OLED屏播放視頻,Wi-Fi 和 TCP/IP 綜合應(yīng)用。 ``
    發(fā)表于 10-27 17:30

    HarmonyOS應(yīng)用開發(fā)資料(Svg組件

    1、HarmonyOS應(yīng)用開發(fā)-Svg組件circle  該組件從API version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。2、
    發(fā)表于 03-17 14:49

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

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

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-聲明式開發(fā)范式組件匯總

    組件是構(gòu)建頁面的核心,每個組件通過對數(shù)據(jù)和方法的簡單封裝,實(shí)現(xiàn)獨(dú)立的可視、可交互功能單元。組件之間相互獨(dú)立,隨取隨用,也可以在需求相同的地方重復(fù)使用。聲明式開發(fā)范式目前可供選擇的
    發(fā)表于 01-19 11:14

    HarmonyOS/OpenHarmony原生應(yīng)用-ArkTS萬能卡片組件Slider

    滑動條組件,通常用于快速調(diào)節(jié)設(shè)置值,如音量調(diào)節(jié)、亮度調(diào)節(jié)等應(yīng)用場景。該組件從API Version 7開始支持。無子組件 一、接口 Slider(options?: {value?:
    發(fā)表于 10-18 15:39

    華為開發(fā)者分論壇HarmonyOS學(xué)生公開課-OpenHarmony Codelabs開發(fā)案

    2021華為開發(fā)者分論壇HarmonyOS學(xué)生公開課-OpenHarmony Codelabs開發(fā)案
    的頭像 發(fā)表于 10-24 11:25 ?2170次閱讀
    華為<b class='flag-5'>開發(fā)</b>者分論壇<b class='flag-5'>HarmonyOS</b>學(xué)生公開課-OpenHarmony Codelabs<b class='flag-5'>開發(fā)案</b>例

    HarmonyOS開發(fā)案例:【app內(nèi)字體大小調(diào)節(jié)】

    使用基礎(chǔ)組件[Slider],通過拖動滑塊調(diào)節(jié)應(yīng)用內(nèi)字體大小。
    的頭像 發(fā)表于 04-19 15:36 ?1348次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【app內(nèi)字體大小調(diào)節(jié)】

    HarmonyOS開發(fā)案例:【視頻播放器】

    基于video、swiper和slider組件,實(shí)現(xiàn)簡單的視頻播放器,可支持海報輪播、視頻播放等功能。
    的頭像 發(fā)表于 04-22 21:06 ?998次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【視頻播放器】

    HarmonyOS開發(fā)案例:【 switch、chart組件的使用】

    基于switch組件和chart組件,實(shí)現(xiàn)線形圖、占比圖、柱狀圖,并通過switch切換chart組件數(shù)據(jù)的動靜態(tài)顯示。
    的頭像 發(fā)表于 04-25 20:58 ?1093次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【 switch、chart<b class='flag-5'>組件</b>的使用】

    HarmonyOS 5】金融應(yīng)用開發(fā)鴻蒙組件實(shí)踐

    HarmonyOS 5】金融應(yīng)用開發(fā)鴻蒙組件實(shí)踐 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財#
    的頭像 發(fā)表于 07-11 18:20 ?289次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】金融應(yīng)用<b class='flag-5'>開發(fā)</b>鴻蒙<b class='flag-5'>組件</b>實(shí)踐