当前位置: 首页 > wzjs >正文

找国内外贸公司的网站微信软文范例大全100

找国内外贸公司的网站,微信软文范例大全100,专门做悬疑推理小说的阅读网站,建站公司费用情况一、背景 在开发鸿蒙应用时,我们常常需要实现一些复杂的布局效果,比如文字环绕动态文本的效果。这种效果类似于文字环绕图片,但需要环绕的文本是动态生成的,并且带有边框和样式。传统的布局组件(如 Row)无…

一、背景

在开发鸿蒙应用时,我们常常需要实现一些复杂的布局效果,比如文字环绕动态文本的效果。这种效果类似于文字环绕图片,但需要环绕的文本是动态生成的,并且带有边框和样式。传统的布局组件(如 Row)无法直接实现这种效果,因为 Row 的换行逻辑是基于每个子组件的起始端,无法实现第二个文本环绕第一个文本的效果。

下面介绍如何通过 组件截图 和 ImageSpan 来实现文字环绕动态文本的效果。

二、实现思路

1. 初步尝试:使用 Row 组件

最初的想法是使用 Row 组件包裹两个 Text 组件,分别表示需要环绕的文本和主文本。然而,Row 组件的布局方式是左右排列,当文本换行时,第二个 Text 组件会基于自己的起始端换行,无法实现环绕效果。

如下效果:

2. 解决方案:组件截图 + ImageSpan

为了实现文字环绕效果,采用了以下方案:

  1. 使用 componentSnapshot 组件对需要环绕的文本进行截图,生成图片。

  2. 将截图通过 ImageSpan 嵌入到主文本中,实现文字环绕图片的效果。

三、具体实现

3.1 组件截图:componentSnapshot

componentSnapshot 是鸿蒙 ArkUI 提供的一个 API,用于获取组件的截图。它支持截取已加载组件的内容,并将结果保存为 PixelMap 对象。

3.1.1 导入模块

首先,需要导入 componentSnapshot 模块:

import { componentSnapshot } from '@kit.ArkUI';
3.1.2 定义需要截图的组件

我们定义一个带有边框和样式的 Text 组件,作为需要环绕的文本:

 //获取需要加载组件的文本@BuilderhotTopText() {Text('精选').borderRadius(2).border({width: 0.5,color: '#0165B8',style: BorderStyle.Solid}).fontSize(12).fontColor('#0165B8').backgroundColor('#DBEFFF').padding({left: 2,right: 2}).margin({ top: 5 }).height(15).id('hotTopText') //组件标识.visibility(this.isShowTag ? Visibility.Visible : Visibility.None)}
3.1.3 获取组件截图

通过 componentSnapshot.get 方法获取组件的截图:

getComponentSnapshot() {this.isShowTag = true// 增加延迟,确保组件渲染完成setTimeout(() => {componentSnapshot.get('hotTopText', { scale: 2, waitUntilRenderFinished: true }).then((pixmap: image.PixelMap) => {this.pixmap = pixmap;this.isShowTag = false}).catch(() => {console.log('lucy== 获取标签快照失败')});}, 100);}
3.2 使用 ImageSpan 实现文字环绕

将截图通过 ImageSpan 嵌入到主文本中,实现文字环绕效果:

    Row() {this.hotTopText() //只有加载了才能获取截图Text() {ImageSpan(this.pixmap).height(14).width('auto').verticalAlign(ImageSpanAlignment.CENTER).margin({ right: 3 }).objectFit(ImageFit.Contain)Span('HarmonyOS NEXT 全栈自研架构,鸿蒙原生应用,带来全新体验').fontSize(15).fontWeight(FontWeight.Medium)}.align(Alignment.Top).textAlign(TextAlign.Start)}.margin({top: 12,}).padding(12).borderWidth(1).borderColor(Color.Red)

四、完整代码

以下是完整的实现代码:

import { image } from '@kit.ImageKit'
import { componentSnapshot } from '@kit.ArkUI'@Entry
@Component
struct TextSpanPage {@State pixmap: image.PixelMap | undefined = undefined@State isShowTag: boolean = falseaboutToAppear(): void {this.getComponentSnapshot()}getComponentSnapshot() {this.isShowTag = true// 增加延迟,确保组件渲染完成setTimeout(() => {componentSnapshot.get('hotTopText', { scale: 2, waitUntilRenderFinished: true }).then((pixmap: image.PixelMap) => {this.pixmap = pixmap;this.isShowTag = false}).catch(() => {console.log('lucy== 获取标签快照失败')});}, 100);}build() {Row() {this.hotTopText() //只有加载了才能获取截图Text() {ImageSpan(this.pixmap).height(14).width('auto').verticalAlign(ImageSpanAlignment.CENTER).margin({ right: 3 }).objectFit(ImageFit.Contain)Span('HarmonyOS NEXT 全栈自研架构,鸿蒙原生应用,带来全新体验').fontSize(15).fontWeight(FontWeight.Medium)}.align(Alignment.Top).textAlign(TextAlign.Start)}.margin({top: 12,}).padding(12).borderWidth(1).borderColor(Color.Red)}//获取需要加载组件的文本@BuilderhotTopText() {Text('精选').borderRadius(2).border({width: 0.5,color: '#0165B8',style: BorderStyle.Solid}).fontSize(12).fontColor('#0165B8').backgroundColor('#DBEFFF').padding({left: 2,right: 2}).margin({ top: 5 }).height(15).id('hotTopText') //组件标识.visibility(this.isShowTag ? Visibility.Visible : Visibility.None)}
}

五、最终效果

通过以上方法,实现了文字环绕动态文本的效果。动态文本被截图为图片,并通过 ImageSpan 嵌入到主文本中,实现了类似文字环绕图片的布局效果。

http://www.dtcms.com/wzjs/279374.html

相关文章:

  • 网站域名都需要备案吗黄山seo
  • 深圳网站程序开发制作企业推广视频
  • 好的结构设计网站网站注册
  • 做地方的门户网站网站优化软件
  • 奉贤做网站价格应用宝下载
  • 付网站建设费seo哪家强
  • 深圳有实力的网站建设服务商网络优化app哪个好
  • 上海高端网站设计黄页88网
  • 如何不备案做购物网站什么广告推广最有效果
  • 做动漫网站用什么程序百度指数官方版
  • 凡科网站免费注册引流推广多少钱一个
  • 可信网站认证好处百度广告搜索推广
  • 网站怎么做吸引人网站优化公司开始上班了
  • 恒信在线做彩票的是什么样的网站百度的网址
  • 深圳宝安网站建设工seo建设者
  • cms建站系统 java网络营销心得体会1000字
  • 广州网站制作开发最近新闻
  • 网站服务器买了后怎么做网站建设的好公司
  • 自己做网站花钱么网络销售推广是做什么的具体
  • 南昌网站制作方案定制江门seo推广公司
  • 做网咖的网站公司网站建设费
  • 做旅游网站多少钱吉林百度查关键词排名
  • 网站建设设计公司网站建站要多少钱
  • 网站制作合作网络营销策划书包括哪些内容
  • 网站建设 开发工具 python推广方案流程
  • 网页设计分享网站宁波正规seo推广公司
  • wordpress 联系方式海口网站关键词优化
  • 广州专门做网站的公司有哪些郑州网络推广效果
  • 网站漂浮物怎么做百度营销推广
  • 新网站如何做营销百度信息流优化