ArkUI画图形

前言

整体就是一个stack布局,一层一层叠上去的,主要就是图形的绘制,例如三角形之类的,这里是用Path组件来画的,以前CSS还可以用border的属性来绘制三角形,我找了华为官网,觉得Path不错,首先要了解的是vp和px的单位转换,我用vp2px(直接用即可)方法计算出1vp=3px,可能对于屏幕像素的差异会有所不同,然后就是Path的属性方法了
首先确实要给宽度和高度,我这里用px为单位,当然也可以不写
然后就是commands方法,里面的参数是字符串,这个可以参考Path,使用这个方法主要就是对于坐标要有概念,我这里用了M0 200(表示起点(0,200)),然后跟着L390 250,表示从起点开始画线到(390,250),然后就是S780 1050 730 1050,表示从坐标(780,1050)到(730,1050)画一条曲线,就是下图的右下角的圆角,最后Z收尾,表示最后一个坐标点直接连接回起点
然后就是自定义线的宽度和颜色,给整个区域内填充颜色用fill方法

效果

在这里插入图片描述

代码

@Entry
@Component
struct DialogPage {
   
  myDialogController:CustomDialogController = new CustomDialogController({
   
    builder:MyDialog()
  })
  build() {
   
    Column(){
   
      Button('click')
        .onClick(() => {
   
          this.myDialogController.open()
        })
    }
    .width('100%'
### 如何在ArkUI中实现图片预览功能 #### 使用Image组件进行基本设置 为了实现在ArkUI中的图片预览功能,首先需要引入`@ohos/arkui-declarative`包,并创建一个新的页面用于显示图片。对于图片的加载和渲染,主要依赖于`Image`组件。 ```typescript import { Image } from '@ohos/arkui-declarative'; export default { data() { return { imageUrl: 'https://example.com/path/to/image.jpg' }; }, render() { return ( <div> {/* 显示单张图片 */} <Image src={this.imageUrl} style={{ width: "100%", height: "auto" }} /> {/* 添加点击放大效果 */} <button onClick={() => this.showLargeImage()}> 放大查看 </button> </div> ); }, methods: { showLargeImage() { // 实现点击后全屏或弹窗展示更大尺寸的图片逻辑 console.log('Show large image'); } } } ``` 上述代码片段定义了一个简单的界面,在其中放置了一张网络图片以及一个按钮[^4]。当用户点击该按钮时,则触发`showLargeImage()`方法执行进一步的操作,比如切换到新的路由以呈现更大的图像视图或者直接在同一界面上通过样式变化达到放大的视觉体验。 #### 利用Stack组件构建分层结构 如果希望提供更复杂的交互方式,例如模仿社交软件里常见的照片浏览模式——能够上下滑动查看更多关联图片、双指缩放等功能,则可借助`Stack`容器来管理多张图片之间的层次关系: ```typescript <template> <stack id="imagePreviewer"> <!-- 底层背景遮罩 --> <rect color="#80000000"></rect> <!-- 中间层为当前选中的图片 --> <image :src="currentImageUrl" @touchstart="onTouchStart" @touchmove="onTouchMove" @touchend="onTouchEnd"/> <!-- 上方关闭按钮和其他控制元素 --> <column align-items="flex-end"> <icon name="close" size="large" @click="hideImageViewer"/> </column> </stack> </template> ``` 这里采用的是基于Vue语法糖的方式书写模板部分;而实际项目可能还会涉及到更多细节处理,如手势识别、动过渡等[^5]。 #### 动态更新图片源地址 为了让应用程序支持动态加载不同URL指向的新图片资源,可以通过修改绑定给`Image`标签内`src`属性的数据变量值完成刷新操作。这通常发生在响应某些特定事件之后,像列表项的选择变更或是API请求返回新数据等情况之下。 ```javascript // 假设这是某个函数内部的一部分 fetchNewImageData().then(response => { if (response.success) { this.currentImageUrl = response.data.url; } }); ``` 此段JavaScript代码展示了如何在网络调用成功后更改正在显示的图片链接,从而让前端自动重新拉取最新的图形素材并即时反映出来[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值