自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放

開發(fā) 前端 OpenHarmony
本篇主要介紹運(yùn)用HarmonyOS來實現(xiàn)Image組件的剪切和縮放,圖片(Image)是用來顯示圖片的組件。常見的屬性有id,長、寬、高等。

[[419300]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. Image圖片標(biāo)簽

概述:圖片(Image)是用來顯示圖片的組件。

常見的屬性:id,長、寬、高等。

具體可以參考華為開發(fā)手冊(組件的通用屬性):

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-common-xml-0000001138483639

比較重要的屬性:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)
HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

藍(lán)色的區(qū)域就是背景圖片

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

如果image標(biāo)簽比較大,而要展示的圖片比較小,前景圖片就蓋不住背景圖片,背景圖片就會展示出來。

工作當(dāng)中,關(guān)于image標(biāo)簽有兩個習(xí)慣:

大小會包裹內(nèi)容,圖片多大,image標(biāo)簽多大

image標(biāo)簽基本不會設(shè)置背景圖片,只會設(shè)置前景圖片,因為前景圖片才是要展示出來的圖片

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

新建項目:ImageApplication

  1. <Image 
  2.          ohos:height="1000px" 
  3.          ohos:width="1000px" 
  4.          ohos:image_src="$media:girl1" 
  5.          ohos:background_element="#0000FF" 
  6.      /> 

使用的girl圖片如下,可下載自取

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

girl圖片信息:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

運(yùn)行,會發(fā)現(xiàn)藍(lán)色區(qū)域其實就是image標(biāo)簽,里面的girl就是展示的前景圖片,默認(rèn)情況是不剪切、不縮放的形式展示,把展示的圖片直接放在image正中間HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

2. 圖片剪切 clip_alignment

查看girl圖片信息

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

把寬高改為100px,因為image標(biāo)簽要比真實圖片小的時候,才需要剪切

  1. <Image 
  2.    ohos:height="100px" 
  3.    ohos:width="100px" 
  4.    ohos:image_src="$media:girl1" 
  5.    ohos:background_element="#0000FF" 
  6.    ohos:clip_alignment="center" 
  7.    /> 

運(yùn)行:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

發(fā)現(xiàn)只把中間的一小部分顯示出來了,并且寬高大小均為100px

所以,ohos:clip_alignment="center"表示把圖片中間和部分進(jìn)行剪切,然后再展示出來

ohos:clip_alignment="left",表示剪切左邊的部分,其他屬性以此類推

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

ohos:clip_alignment="left|top"表示剪切左上部分圖片

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

3. 縮放圖片 scale_mode

使用的飛機(jī)圖片如下,可下載自取

[[419308]]

飛機(jī)圖片的信息

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)
  1. <Image 
  2.     ohos:height="500px" 
  3.     ohos:width="500px" 
  4.     ohos:image_src="$media:plane" 
  5.     ohos:background_element="#0000FF" 
  6.     /> 

默認(rèn)不剪切、不縮放,就是把圖片放在正中間

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

ohos:scale_mode="inside":表示將圖片按比例縮放到跟image相同的或更小的尺寸并居中展示,但有可能不會填充整個組件

如:把圖片寬高改為 300px

  1. <Image 
  2.         ohos:height="300px" 
  3.         ohos:width="300px" 
  4.         ohos:image_src="$media:plane" 
  5.         ohos:background_element="#0000FF" 
  6.         ohos:scale_mode="inside" 
  7.         /> 
HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

可以看到縮小了,把原圖等比例縮小了。是跟image相同的或更小的尺寸并居中展示。

改為ohos:scale_mode="center":表示不縮放,按照image大小來展示原圖中間的那一部分

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

改為ohos:scale_mode="stretch":表示拉伸,會把整個image拉伸鋪滿。縮小后會把整個image鋪滿

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

寬高改為1000px,改為ohos:scale_mode="zoom_center",:表示把原圖等比例放大,放大到跟窄邊一致的時候(也就是說:在放大的時候,只要這個圖片已經(jīng)鋪滿了其中一邊,那么他是鋪滿了橫向的寬度,所以就不會再縮放了,然后再居中顯示)

  1. <Image 
  2.        ohos:height="1000px" 
  3.        ohos:width="1000px" 
  4.        ohos:image_src="$media:plane" 
  5.        ohos:background_element="#0000FF" 
  6.        ohos:scale_mode="zoom_center" 
  7.        /> 
HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

改為ohos:scale_mode="zoom_start":放大后只會在上面顯示,如:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

改為ohos:scale_mode="zoom_end":放大后只會在下面顯示,如:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

4. zoom_center 和 inside 區(qū)別:

當(dāng)image比較大時,要展示的圖片比較小時,inside 不會進(jìn)行放大的,只能縮小。

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

而 zoom_center 就會把原圖放大

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

5. 小節(jié)

1、圖片剪切顯示:

代碼中:可以用setClipGravity方法

xml文件中:可以用clip_alignment屬性,上、下、左、右、居中,分別表示按照上、下、左、右、中間部位進(jìn)行剪切。

2、圖片縮放顯示:

代碼中:可以用setScaleMode方法

xml文件中:可以用scale_mode屬性

inside:表示將原圖按比例縮放到與Image相同或更小的尺寸,并居中顯示。 有可能不會填充組件

center:表示不縮放,按Image大小顯示原圖中間部分。

stretch:表示將原圖縮放到與Image大小一致。 拉伸。將組件填充。

clip_center:表示將原圖按比例縮放到與Image相同或更大的尺寸,并居中顯示。超過組件的部分被剪切掉。

zoom_center:表示原圖按照比例縮放到與Image最窄邊一致,并居中顯示。

zoom_end:表示原圖按照比例縮放到與Image最窄邊一致,并靠結(jié)束端顯示。

zoom_start:表示原圖按照比例縮放到與Image最窄邊一致,并靠起始端顯示。

相關(guān)方法:

HarmonyOS實戰(zhàn)—Image組件的剪切和縮放-鴻蒙HarmonyOS技術(shù)社區(qū)

3、 實際開發(fā)當(dāng)中,盡量不剪切、也不縮放,因為剪切或縮放了,就有可能導(dǎo)致圖片失幀。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-09-06 15:31:01

鴻蒙HarmonyOS應(yīng)用

2021-09-13 15:17:28

鴻蒙HarmonyOS應(yīng)用

2021-08-19 14:47:47

鴻蒙HarmonyOS應(yīng)用

2021-01-21 09:45:36

鴻蒙HarmonyOS分布式

2021-01-16 12:21:59

react-dragareact-resia可視化

2021-08-11 09:32:12

鴻蒙HarmonyOS應(yīng)用

2021-06-17 14:56:00

鴻蒙HarmonyOS應(yīng)用

2021-11-02 14:54:21

鴻蒙HarmonyOS應(yīng)用

2009-09-01 10:35:59

C# WinForm控

2021-09-27 10:43:18

鴻蒙HarmonyOS應(yīng)用

2021-05-24 06:20:04

Linuxsed命令

2023-11-07 18:03:31

Vim復(fù)制粘貼

2024-05-23 08:05:04

2021-07-05 14:29:28

鴻蒙HarmonyOS應(yīng)用

2023-03-29 08:35:11

RMANBackupSets

2020-10-12 19:50:30

TCP窗口時間戳SACK

2021-09-27 14:44:48

鴻蒙HarmonyOS應(yīng)用

2020-12-21 08:42:40

NettyByteBuf網(wǎng)絡(luò)技術(shù)

2023-11-10 15:29:28

GIMP圖像

2021-08-06 14:35:26

鴻蒙HarmonyOS應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號