tft每日頭條

 > 科技

 > 鴻蒙框架應用啟動過程

鴻蒙框架應用啟動過程

科技 更新时间:2025-01-06 17:25:49
本章目标

1 學習組件Image的用法

Image是圖片組件,用來渲染展示圖片。

Image的屬性

除支持通用屬性外,還支持如下屬性:

名稱

類型

默認值

必填

描述

src

string

-

圖片的路徑,支持本地和雲端路徑,圖片格式包括png、jpg、bmp、svg和gif。

支持Base64字符串6 。格式為data:image/[png | jpeg | bmp | webp];base64, [base64 data], 其中[base64 data]為Base64字符串數據。

支持dataability://的路徑前綴,用于訪問通過data ability提供的圖片路徑,具體路徑信息詳見Data Ability說明6 。

alt

string

-

占位圖,當指定圖片在加載中時顯示。

啟動DevEco Studio,新建一個項目或者打開之前的項目。這裡我們以之前創建的項目Components為例。在項目窗口中右鍵單擊pages目錄,新建一個JS Page,取名imagepage

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)1

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)2

将一張圖片複制到 entry > src > main > js > default > common > images 目錄下,例如下圖所示(可以直接把圖片拖拽過來)

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)3

在電腦上快速定位到images目錄并打開的方法是,右鍵單擊images目錄,選擇 打開于 > Explorer。

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)4

1 創建Image組件

<!-- imagepage.hml --> <div class="container"> <image src="common/images/bird.jpg"></image> </div>

/* imagepage.css */ .container { flex-direction: column; justify-content: center; align-items: center; }

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)5

2 設置Image樣式

Image組件除支持通用樣式外,還支持如下屬性:

名稱

類型

默認值

必填

描述

object-fit

string

cover

設置圖片的縮放類型。可選值類型說明請見object-fit 類型說明。(不支持svg格式)

match-text-direction

boolean

false

圖片是否跟随文字方向。(不支持svg格式)

fit-original-size

boolean

false

image組件在未設置寬高的情況下是否适應圖源尺寸(該屬性為true時object-fit屬性不生效),svg類型圖源不支持該屬性。

object-position7

string

0px 0px

設置圖片在組件内展示的位置。

設置類型有兩種:

1. 像素,單位px,示例 15px 15px 代表X軸或者Y軸移動的位置

2. 字符,可選值:

  • left 圖片顯示在組件左側;
  • top 圖片顯示在組件頂部位置;
  • right 圖片顯示在組件右側位置;
  • bottom圖片顯示在組件底部位置。

object-fit 類型說明

類型

描述

cover

保持寬高比進行縮小或者放大,使得圖片兩邊都大于或等于顯示邊界,居中顯示。

contain

保持寬高比進行縮小或者放大,使得圖片完全顯示在顯示邊界内,居中顯示。

fill

不保持寬高比進行放大縮小,使得圖片填充滿顯示邊界。

none

保持原有尺寸進行居中顯示。

scale-down

保持寬高比居中顯示,圖片縮小或者保持不變。

說明

使用svg圖片資源時:

  • 建議設置image組件的長寬,否則在父組件的長或寬為無窮大的場景下,svg資源将不會繪制;
  • 如果svg描述中未指定相應的長寬,則svg将會填滿image組件區域;
  • 如果svg描述中指定了相應的長寬,和image組件本身的長寬效果如下:
  1. 如果image組件本身的長寬小于svg中的長寬,svg會被裁切,僅顯示左上角部分;
  2. 如果image組件本身的長寬大于svg中的長寬,svg會被放置在image組件的左上角,image組件其他部分顯示空白。

通過設置width、height和object-fit屬性定義圖片的寬、高和縮放樣式。

/* imagepage.css */ .container { flex-direction: column; justify-content: center; align-items: center; } image { width: 80%; height: 500px; border: 3px dotted red; border-radius: 30px; object-fit: contain; match-text-direction: true; }

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)6

3 顯示多張圖片

定義for循環展示多張圖片,同時定義select選擇圖片的展示方式。

<!-- imagepage.hml --> <div class="container"> <list> <list-item for="{{ url }}"> <image src="{{ $item }}" style="object-fit: {{ fit }};"></image> </list-item> </list> <select @change="setFit"> <option for="{{ fitList }}" value="{{ $item }}">{{ $item }}</option> </select> </div>

/* imagepage.css */ .container { flex-direction: column; align-items: center; justify-content: center; } list-item { justify-content: center; border: 2px solid blue; } image { width: 300px; height: 220px; padding: 5px; margin: 5px; border: 2px solid orange; } select { font-size: 40px; width: 300px; height: 160px; border: 2px solid red; margin-bottom: 20px; } option { font-size: 36px; }

// imagepage.js export default { data: { url: ['common/images/bird.jpg', 'common/images/fish.jpg'], fit: 'cover', fitList: ['cover', 'contain', 'fill', 'none', 'scale-down'] }, setFit(e) { this.fit = e.newValue; } }

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)7

4 組件Image事件

除支持通用事件外,還支持如下事件:

名稱

參數

描述

complete(Rich)

{ width:width, height:height }

圖片成功加載時觸發該回調,返回成功加載的圖源尺寸。

error(Rich)

{ width:width, height:height }

圖片加載出現異常時觸發該回調,異常時長寬為零。

下面來看看加載圖片的實例。本實例圖片成功加載時觸發complete事件,返回加載的圖源尺寸。加載失敗則觸發error事件,打印圖片加載失敗。

<!-- imagepage.hml --> <div class="container"> <image src="common/images/bird.jpg" @complete="imageComplete(1)" @error="imageError(1)"> </image> <image src="common/images/bird1.jpg" @complete="imageComplete(2)" @error="imageError(2)"> </image> </div>

/* imagepage.css */ .container { flex-direction: column; align-items: center; justify-content: center; } image { width: 80%; height: 200px; align-items: center; margin: 5px; }

// imagepage.js import prompt from '@system.prompt'; export default { imageComplete(i, e) { prompt.showToast({ message: '圖片' i '的寬度為' e.width ',圖片' i '的高度為' e.height, duration: 3000 }); }, imageError(i, e) { setTimeout(() => { prompt.showToast({ message: '圖片加載失敗' i, duration: 3000 }); }, 3000); } }

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)8

鴻蒙框架應用啟動過程(華為鴻蒙應用程序開發)9

至此,Image組件的基本用法已經介紹完了。

最後,老規矩,敲黑闆:多動手,多思考!代碼一定要親自動手敲出來![呲牙][比心]

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved