OpenHarmony 视图缩放组件—subsampling-scale-image-view

2024-04-19 17:04

本文主要是介绍OpenHarmony 视图缩放组件—subsampling-scale-image-view,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

深度缩放视图,图像显示,手势平移缩放双击等

效果图(旋转、缩放、平移)

下载安装

ohpm install @ohos/subsampling-scale-image-view 

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包

使用说明

生成SubsamplingScaleImageView

import {SubsamplingScaleImageView} from '@ohos/subsampling-scale-image-view';
...
//创建model对象
@State model: SubsamplingScaleImageView.Model  = new SubsamplingScaleImageView.Model()
...
build() {Stack({ alignContent: Alignment.Bottom }) {//使用SubsamplingScaleImageView组件SubsamplingScaleImageView({ model: this.model })Column({ space: 5 }) {Swiper(this.swiperController) {Row({ space: 5 }) {Text('This image is 7,800 x 6,240 pixels. On most devices it will be subsampled, and higher quality tiles are loaded as you zoom in.').width('100%').height(60).layoutWeight(1).fontColor(0xffffff).textAlign(TextAlign.Center).fontSize(16)Image($r('app.media.next')).width(30).height(30).margin({ top: 6, left: 10 }).onClick((event: ClickEvent) => {this.index = 1;})}.width('100%').height(60).backgroundColor(0x3d3d3d)Row({ space: 5 }) {Image($r('app.media.previous')).width(30).height(30).margin({ top: 6 }).onClick((event: ClickEvent) => {this.index = 0;})Text('This image has been rotated 90 degrees. Tap the button to rotate it. EXIF rotation is supported for external files.').width('100%').height(60).layoutWeight(1).fontColor(0xffffff).textAlign(TextAlign.Center).fontSize(16)Image($r('app.media.rotate')).width(30).height(30).margin({ top: 6, left: 10, right: 20 }).onClick((event: ClickEvent) => {this.mRotate += 90;this.model.setOrientation(this.mRotate)})}.width('100%').height(60).backgroundColor(0x3d3d3d)}.index(this.index).autoPlay(false).indicator(false) // 默认开启指示点.loop(false) // 默认开启循环播放.duration(50).vertical(false) // 默认横向切换.itemSpace(0).onChange((index: number) => {if (index == 1) {this.model.setImage($r('app.media.swissroad'));}})}.height(60).backgroundColor(0x3d3d3d).align(Alignment.Bottom)}
}
//设置图片源
aboutToAppear() {this.model.setImage($r('app.media.card'));
}
...

接口说明

  1. 设置图片资源
public setImage(src: string | PixelMap | Resource)
public setImage(src: string | PixelMap | Resource, previewSource: string | Resource)
public setImage(src: string | PixelMap | Resource, state: ImageViewState)
  1. 设置图片是否可缩放
setZoomEnabled(zoomEnabled: boolean)
  1. 设置图片是否可平移
public setPanEnabled(panEnabled: boolean)
  1. 设置图片最大缩放比
public setMaxScale(maxScale: number)
  1. 设置图片旋转角度
public setOrientation(degrees: number)
  1. 获取图片高宽
public getSWidth()  
public getSHeight()
  1. 单击监听器
public setSingleTapListener(listener: OnSingleTapListener)
  1. 长按监听器
public setLongPressListener(listener: OnLongPressListener)
  1. 双击监听器
public setDoubleTapListener(listener: OnDoubleTapListener)

约束与限制

在下述版本验证通过:

  • DevEco Studio 版本: 4.1 Canary(4.1.3.317)

  • OpenHarmony SDK:API11 (4.1.0.36)

目录结构

|---- subsampling-scale-image-view |---- entry # 示例代码文件夹      |---- library  |     |---- src|          |---- main|                |---- ets          |                      |---- components  # 库文件夹               |                           |---- SubsamplingScaleImageView.ets  # 自定义组件|                           |---- ImageViewState.ets  # 组件状态数据封装类  |     |---- index.ets  # 对外接口              |     |---- README.md  # 安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

这篇关于OpenHarmony 视图缩放组件—subsampling-scale-image-view的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918118

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)