HarmonyOS实战—Image组件的剪切和缩放

简介: HarmonyOS实战—Image组件的剪切和缩放

1. Image图片标签

  • 概述:图片(Image)是用来显示图片的组件。
  • 常见的属性:id,长、宽、高等。
  • 具体可以参考华为开发手册(组件的通用属性):

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

  • 比较重要的属性:

在这里插入图片描述
在这里插入图片描述

  • 蓝色的区域就是背景图片

在这里插入图片描述

  • 如果image标签比较大,而要展示的图片比较小,前景图片就盖不住背景图片,背景图片就会展示出来。

工作当中,关于image标签有两个习惯:

  1. 大小会包裹内容,图片多大,image标签多大
  2. image标签基本不会设置背景图片,只会设置前景图片,因为前景图片才是要展示出来的图片

在这里插入图片描述

  • 新建项目:ImageApplication
    <Image
         ohos:height="1000px"
         ohos:width="1000px"
         ohos:image_src="$media:girl1"
         ohos:background_element="#0000FF"
     />
  • 使用的girl图片如下,可下载自取

请添加图片描述

  • girl图片信息:

在这里插入图片描述

  • 运行,会发现蓝色区域其实就是image标签,里面的girl就是展示的前景图片,默认情况是不剪切、不缩放的形式展示,把展示的图片直接放在image正中间

在这里插入图片描述

2. 图片剪切 clip_alignment

  • 查看girl图片信息

在这里插入图片描述

  • 把宽高改为100px,因为image标签要比真实图片小的时候,才需要剪切
<Image
   ohos:height="100px"
   ohos:width="100px"
   ohos:image_src="$media:girl1"
   ohos:background_element="#0000FF"
   ohos:clip_alignment="center"
   />
  • 运行:

在这里插入图片描述

  • 发现只把中间的一小部分显示出来了,并且宽高大小均为100px
  • 所以,ohos:clip_alignment="center"表示把图片中间和部分进行剪切,然后再展示出来
  • ohos:clip_alignment="left",表示剪切左边的部分,其他属性以此类推

在这里插入图片描述

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

在这里插入图片描述

3. 缩放图片 scale_mode

  • 使用的飞机图片如下,可下载自取

请添加图片描述

  • 飞机图片的信息

在这里插入图片描述

    <Image
    ohos:height="500px"
    ohos:width="500px"
    ohos:image_src="$media:plane"
    ohos:background_element="#0000FF"
    />
  • 默认不剪切、不缩放,就是把图片放在正中间

在这里插入图片描述

  • ohos:scale_mode="inside":表示将图片按比例缩放到跟image相同的或更小的尺寸并居中展示,但有可能不会填充整个组件
  • 如:把图片宽高改为 300px
    <Image
        ohos:height="300px"
        ohos:width="300px"
        ohos:image_src="$media:plane"
        ohos:background_element="#0000FF"
        ohos:scale_mode="inside"
        />

在这里插入图片描述

  • 可以看到缩小了,把原图等比例缩小了。是跟image相同的或更小的尺寸并居中展示。
  • 改为ohos:scale_mode="center":表示不缩放,按照image大小来展示原图中间的那一部分

在这里插入图片描述

  • 改为ohos:scale_mode="stretch":表示拉伸,会把整个image拉伸铺满。缩小后会把整个image铺满

在这里插入图片描述

  • 宽高改为1000px,改为ohos:scale_mode="zoom_center",:表示把原图等比例放大,放大到跟窄边一致的时候(也就是说:在放大的时候,只要这个图片已经铺满了其中一边,那么他是铺满了横向的宽度,所以就不会再缩放了,然后再居中显示)
    <Image
        ohos:height="1000px"
        ohos:width="1000px"
        ohos:image_src="$media:plane"
        ohos:background_element="#0000FF"
        ohos:scale_mode="zoom_center"
        />

在这里插入图片描述

  • 改为ohos:scale_mode="zoom_start":放大后只会在上面显示,如:

在这里插入图片描述

  • 改为ohos:scale_mode="zoom_end":放大后只会在下面显示,如:

在这里插入图片描述

4. zoom_center 和 inside 区别:

  • image比较大时,要展示的图片比较小时,inside 不会进行放大的,只能缩小。

在这里插入图片描述

  • zoom_center 就会把原图放大

在这里插入图片描述

5. 小节

1、图片剪切显示:

  • 代码中:可以用setClipGravity方法
  • xml文件中:可以用clip_alignment属性,上、下、左、右、居中,分别表示按照上、下、左、右、中间部位进行剪切。

2、图片缩放显示:

  • 代码中:可以用setScaleMode方法
  • xml文件中:可以用scale_mode属性
  1. inside:表示将原图按比例缩放到与Image相同或更小的尺寸,并居中显示。 有可能不会填充组件
  2. center:表示不缩放,按Image大小显示原图中间部分。
  3. stretch:表示将原图缩放到与Image大小一致。 拉伸。将组件填充。
  4. clip_center:表示将原图按比例缩放到与Image相同或更大的尺寸,并居中显示。超过组件的部分被剪切掉。
  5. zoom_center:表示原图按照比例缩放到与Image最窄边一致,并居中显示。
  6. zoom_end:表示原图按照比例缩放到与Image最窄边一致,并靠结束端显示。
  7. zoom_start:表示原图按照比例缩放到与Image最窄边一致,并靠起始端显示。
  • 相关方法:

在这里插入图片描述

3、 实际开发当中,尽量不剪切、也不缩放,因为剪切或缩放了,就有可能导致图片失帧

目录
相关文章
|
2天前
|
搜索推荐 前端开发 开发者
「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现
自定义动画让开发者可以设计更加个性化和复杂的动画效果,适合表现独特的界面元素。鸿蒙提供了丰富的工具,支持通过自定义路径和时间控制来创建复杂的动画运动。本篇将带你学习如何通过自定义动画实现更多样化的效果。
50 11
「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现
|
2天前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
35 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
|
13天前
|
安全 API 数据处理
鸿蒙next版开发:ArkTS组件通用属性(隐私遮罩)
在HarmonyOS 5.0中,ArkTS引入了隐私遮罩功能,用于保护用户隐私和数据安全。本文详细介绍了隐私遮罩的通用属性和使用方法,并提供了示例代码。隐私遮罩支持Image和Text组件,在数据加载或处理过程中防止敏感信息泄露,提升用户体验和数据安全性。
39 11
|
13天前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
47 10
|
13天前
|
开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(文本通用)
在HarmonyOS 5.0中,ArkTS提供了丰富的文本通用属性,如textAlign、maxLines、textOverflow、fontSize、fontColor、fontStyle、fontWeight、fontFamily、lineHeight、letterSpacing和decoration等,用于实现多样的文本显示和样式效果。本文详细解读了这些属性,并提供了示例代码,帮助开发者更好地利用这些工具,提升应用界面的美观和实用性。
49 8
|
13天前
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(位置设置)
在HarmonyOS next中,ArkTS提供了align、direction、position、markAnchor、offset和alignRules等通用属性,用于精确控制组件在用户界面中的位置和布局。本文详细解读了这些属性,并提供了示例代码进行说明。通过这些属性,开发者可以实现精确布局、动态界面调整和提升用户体验。
55 6
|
13天前
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(边框设置)
在HarmonyOS 5.0中,ArkTS提供了丰富的边框设置属性,允许开发者自定义组件的边框样式,提升应用的视觉效果和用户体验。本文详细解读了border属性的使用方法,并提供了示例代码,展示了如何设置不同边的边框宽度、颜色、圆角和样式。边框设置在UI开发中具有重要作用,如区分组件、强调重要元素和美化界面。
47 6
|
13天前
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(布局约束)
在HarmonyOS next中,ArkTS提供了一系列通用属性来设置组件的布局约束,使开发者能够灵活控制组件的布局行为。本文详细解读了这些属性,包括`space`、`justifyContent`、`alignItems`、`layoutWeight`、`matchParent`和`wrapContent`,并通过示例代码展示了它们的使用方法。这些属性有助于实现响应式布局、动态界面调整和提升用户体验。
44 5
|
13天前
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(图片边框设置)
在HarmonyOS 5.0中,ArkTS提供了灵活的图片边框设置属性,使开发者可以为应用中的图片组件添加各种边框效果,提升视觉效果和用户体验。本文详细解读了ArkTS中图片边框设置的通用属性,并提供了示例代码。通过设置`borderImage`属性,可以控制边框的图源、切割宽度、边框宽度、延伸距离、平铺模式和是否填充。示例代码展示了如何使用这些属性来创建具有不同边框效果的图片组件。图片边框设置在美化界面、区分内容和增强交互方面有重要作用。
41 5
|
13天前
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(背景设置)
在HarmonyOS 5.0中,ArkTS提供了多种背景设置属性,如backgroundColor、backgroundImage、backgroundSize、backgroundPosition和backgroundBlurStyle,允许开发者自定义组件的背景样式,提升应用的视觉效果和用户体验。本文详细解读了这些属性,并提供了示例代码进行说明。
45 5
下一篇
无影云桌面