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

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

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

HarmonyOS開(kāi)發(fā)案例:【卡片像素轉(zhuǎn)換】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-07 10:45 ? 次閱讀

1 卡片介紹

基于像素單位,展示了像素單位的基本知識(shí)與像素轉(zhuǎn)換API的使用。

2 標(biāo)題

像素轉(zhuǎn)換(ArkTS)

3 介紹

本篇Codelab介紹像素單位的基本知識(shí)與像素單位轉(zhuǎn)換API的使用。通過(guò)像素轉(zhuǎn)換案例,向開(kāi)發(fā)者講解了如何使用像素單位設(shè)置組件的尺寸、字體的大小以及不同像素單位之間的轉(zhuǎn)換方法。主要功能包括:

  1. 展示了不同像素單位的使用。
  2. 展示了像素單位轉(zhuǎn)換相關(guān)API的使用。

相關(guān)概念

  • [像素單位]:為開(kāi)發(fā)者提供4種像素單位,框架采用vp為基準(zhǔn)數(shù)據(jù)單位。
  • [List]:列表包含一系列相同寬度的列表項(xiàng)。適合連續(xù)、多行呈現(xiàn)同類(lèi)數(shù)據(jù),例如圖片和文本。
  • [Column]:沿垂直方向布局的容器。
  • [Text]:顯示一段文本的組件。

4 環(huán)境搭建

鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

軟件要求

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

硬件要求

  • 開(kāi)發(fā)板類(lèi)型:[潤(rùn)和RK3568開(kāi)發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release。

環(huán)境搭建

完成本篇Codelab我們首先要完成開(kāi)發(fā)環(huán)境的搭建,本示例以RK3568開(kāi)發(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的安裝]
    2. [完成RK3568開(kāi)發(fā)板的燒錄](méi)
  3. 搭建開(kāi)發(fā)環(huán)境。
    1. 開(kāi)始前請(qǐng)參考[工具準(zhǔn)備],完成DevEco Studio的安裝和開(kāi)發(fā)環(huán)境配置。
    2. 開(kāi)發(fā)環(huán)境配置完成后,請(qǐng)參考[使用工程向?qū)創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機(jī)進(jìn)行調(diào)測(cè)]。

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

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

├──entry/src/main/ets                   // 代碼區(qū)
│  ├──common
│  │  ├──constants
│  │  │  └──Constants.ets               // 常量類(lèi)
│  │  └──utils
│  │     └──Logger.ets                  // 日志打印工具類(lèi)
│  ├──entryability
│  │  └──EntryAbility.ts                // 程序入口類(lèi)
│  ├──pages
│  │  ├──ConversionPage.ets             // 像素轉(zhuǎn)換頁(yè)面
│  │  ├──IndexPage.ets                  // 應(yīng)用主頁(yè)面
│  │  └──IntroductionPage.ets           // 像素介紹頁(yè)面
│  ├──view
│  │  ├──ConversionItemComponment.ets   // 像素轉(zhuǎn)換Item
│  │  └──IntroductionItemComponment.ets // 像素介紹Item
│  └──viewmodel
│     ├──ConversionItem.ets             // 像素轉(zhuǎn)換信息類(lèi)
│     ├──ConversionViewModel.ets        // 像素轉(zhuǎn)換ViewModel
│     ├──IntroductionItem.ets           // 像素介紹信息類(lèi)
│     └──IntroductionViewModel.ets      // 像素介紹ViewModel
└──entry/src/main/resources             // 資源文件

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

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

6 像素單位介紹頁(yè)面

在像素單位介紹頁(yè)面,介紹了系統(tǒng)像素單位的概念,并在頁(yè)面中為T(mén)ext組件的寬度屬性設(shè)置不同的像素單位,fp像素單位則設(shè)置為T(mén)ext組件的字體大小。

// IntroductionPage.ets
// 設(shè)置Text組件的寬度為200px
Text('200px')
  .textAlign(TextAlign.Center)
  .backgroundColor($r('app.color.blue_background'))
  .height($r('app.float.value_height'))
  .width('200px')
...
// 設(shè)置Text組件的寬度為200vp
Text('200vp')
  .textAlign(TextAlign.Center)
  .backgroundColor($r('app.color.blue_background'))
  .height($r('app.float.value_height'))
  .width('200vp')
...
// 設(shè)置Text組件的寬度為200lpx
Text('200lpx')
  .textAlign(TextAlign.Center)
  .backgroundColor($r('app.color.blue_background'))
  .height($r('app.float.value_height'))
  .width('200lpx')
...
// 分別設(shè)置Text的字體大小為14fp, 24fp
Column() {
  Text('這是一段為14fp的文字')
    .fontSize('14fp')
  ...
  Text('這是一段為24fp的文字')
    .fontSize('24fp')
  ...
}
// ...

說(shuō)明:

  • 為組件設(shè)置具體的寬高時(shí),可以不加“vp”(系統(tǒng)默認(rèn)單位為vp)。
  • 為文字設(shè)置字體大小時(shí)可以不加“fp”(系統(tǒng)默認(rèn)為fp)。

7 像素轉(zhuǎn)換頁(yè)面

在像素轉(zhuǎn)換頁(yè)面,通過(guò)使用像素轉(zhuǎn)換API,實(shí)現(xiàn)不同像素單位之間的相互轉(zhuǎn)換功能。

// ConversionPage.ets
// vp轉(zhuǎn)換為px
Row()
  .blueStyle()
  .width(vp2px(60))
// px轉(zhuǎn)換為vp
Row()
  .blueStyle()
  .width(px2vp(60))
// fp轉(zhuǎn)換為px
Row()
  .blueStyle()
  .width(fp2px(60))
// px轉(zhuǎn)換為fp
Row()
  .blueStyle()
  .width(px2fp(60))
// lpx轉(zhuǎn)換為px
Row()
  .blueStyle()
  .width(lpx2px(60))
// px轉(zhuǎn)換為lpx
Row()
  .blueStyle()
  .width(px2lpx(60))

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2287

    瀏覽量

    42629
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1954

    瀏覽量

    29897
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    OpenHarmony開(kāi)發(fā)案例:【計(jì)步器卡片

    基于Stage模型實(shí)現(xiàn)帶有卡片的計(jì)步應(yīng)用,用于介紹卡片開(kāi)發(fā)及生命周期實(shí)現(xiàn)。
    的頭像 發(fā)表于 04-15 09:22 ?633次閱讀
    OpenHarmony<b class='flag-5'>開(kāi)發(fā)案</b>例:【計(jì)步器<b class='flag-5'>卡片</b>】

    OpenHarmony開(kāi)發(fā)案例:【電影卡片

    基于元服務(wù)卡片的能力,實(shí)現(xiàn)帶有卡片的電影應(yīng)用,介紹卡片開(kāi)發(fā)過(guò)程和生命周期實(shí)現(xiàn)。
    的頭像 發(fā)表于 04-15 17:53 ?1188次閱讀
    OpenHarmony<b class='flag-5'>開(kāi)發(fā)案</b>例:【電影<b class='flag-5'>卡片</b>】

    HarmonyOS服務(wù)卡片快速開(kāi)發(fā)

    HarmonyOS服務(wù)卡片快速開(kāi)發(fā)
    發(fā)表于 06-19 13:52

    HarmonyOS時(shí)鐘FA卡片開(kāi)發(fā)樣例

    HarmonyOS時(shí)鐘FA卡片開(kāi)發(fā)樣例介紹
    發(fā)表于 06-19 13:54

    絕對(duì)干貨!HarmonyOS開(kāi)發(fā)者日資料全公開(kāi),鴻蒙開(kāi)發(fā)者都在看

    HarmonyOS Codelabs 開(kāi)發(fā)樣例概覽:該主題講解HarmonyOS核心技術(shù)能力,圍繞智慧生活的7大場(chǎng)景,介紹Codelabs開(kāi)發(fā)案例。8、
    發(fā)表于 08-04 14:36

    HarmonyOS卡片開(kāi)發(fā)--服務(wù)卡片概述

    服務(wù)。 卡片提供方實(shí)例管理模塊:由卡片提供方開(kāi)發(fā)者實(shí)現(xiàn),負(fù)責(zé)對(duì)卡片管理服務(wù)分配的卡片實(shí)例進(jìn)行持久化管理。 通信適配層:由
    發(fā)表于 09-22 14:10

    HarmonyOS服務(wù)卡片開(kāi)發(fā)-API接口簡(jiǎn)析

    HarmonyOS中的服務(wù)卡片卡片提供方開(kāi)發(fā)者提供以下接口能力。 類(lèi)名接口名描述AbilityProviderFormInfo onCreateForm(Intent intent)
    發(fā)表于 10-12 10:42

    HarmonyOS服務(wù)卡片開(kāi)發(fā)-文件組織與配置學(xué)習(xí)

    1. 文件組織目錄結(jié)構(gòu)JS服務(wù)卡片(entry/src/main/js/Component)的典型開(kāi)發(fā)目錄結(jié)構(gòu)如下:目錄結(jié)構(gòu)中文件分類(lèi)如下:.hml結(jié)尾的HML模板文件,這個(gè)文件用來(lái)描述卡片頁(yè)面
    發(fā)表于 10-14 10:19

    HarmonyOS卡片開(kāi)發(fā)-JS/JAVA場(chǎng)景能力簡(jiǎn)析

    場(chǎng)景Java卡片JS卡片支持的版本實(shí)時(shí)刷新(類(lèi)似時(shí)鐘)Java使用ComponentProvider做實(shí)時(shí)刷新代價(jià)比較大JS可以做到端側(cè)刷新,但是需要定制化組件HarmonyOS 2.0及以上
    發(fā)表于 10-19 09:23

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-FA卡片開(kāi)發(fā)體驗(yàn)

    HarmonyOSOpenHarmony應(yīng)用開(kāi)發(fā)-FA卡片開(kāi)發(fā)體驗(yàn).docx示例代碼:https://gitee.com/jltfcloudcn/jump_to/tree/maste
    發(fā)表于 12-06 14:48

    華為開(kāi)發(fā)HarmonyOS零基礎(chǔ)入門(mén):15分鐘玩轉(zhuǎn)harmonyOS服務(wù)卡片

    華為開(kāi)發(fā)HarmonyOS零基礎(chǔ)入門(mén):15分鐘玩轉(zhuǎn)harmonyOS服務(wù)卡片,服務(wù)卡片顏值高、擁有服務(wù)直達(dá)功能。
    的頭像 發(fā)表于 10-23 11:40 ?2171次閱讀
    華為<b class='flag-5'>開(kāi)發(fā)</b>者<b class='flag-5'>HarmonyOS</b>零基礎(chǔ)入門(mén):15分鐘玩轉(zhuǎn)<b class='flag-5'>harmonyOS</b>服務(wù)<b class='flag-5'>卡片</b>

    零基礎(chǔ)入門(mén)HarmonyOS-響應(yīng)卡片交互事件

    2021 HDC2021華為開(kāi)發(fā)者分論壇零基礎(chǔ)入門(mén)HarmonyOS-響應(yīng)卡片交互事件
    的頭像 發(fā)表于 10-23 13:03 ?1300次閱讀
    零基礎(chǔ)入門(mén)<b class='flag-5'>HarmonyOS</b>-響應(yīng)<b class='flag-5'>卡片</b>交互事件

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

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

    HarmonyOS服務(wù)卡片如何換膚

      關(guān)注HarmonyOS的小伙伴肯定對(duì)服務(wù)卡片已經(jīng)很熟悉了。服務(wù)卡片(也簡(jiǎn)稱(chēng)為“卡片”)是FA(FeatureAbility,元服務(wù))的一種界面展示形式,將FA的重要信息或操作前置到
    的頭像 發(fā)表于 02-12 10:28 ?2746次閱讀
    <b class='flag-5'>HarmonyOS</b>服務(wù)<b class='flag-5'>卡片</b>如何換膚

    用Java開(kāi)發(fā)HarmonyOS服務(wù)卡片

    卡片服務(wù):由卡片提供方開(kāi)發(fā)者實(shí)現(xiàn),開(kāi)發(fā)者實(shí)現(xiàn) onCreateForm、onUpdateForm 和 onDeleteForm 處理創(chuàng)建卡片
    的頭像 發(fā)表于 04-26 11:04 ?1436次閱讀