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

海外网站开发谷歌浏览器安卓版下载

海外网站开发,谷歌浏览器安卓版下载,ui设计工作流程,禁用免费app网页需求 实现类似iOS的YYLabel之类的在文字后面加上图片作为后缀的样式,多行时文字使用…省略超出部分,但必须保证图片的展现。 系统方案 在当前鸿蒙next系统提供的文字排版方法基本没有合适使用的接口,包括imagespan和RichEditor,根据AI的回…

需求

实现类似iOS的YYLabel之类的在文字后面加上图片作为后缀的样式,多行时文字使用…省略超出部分,但必须保证图片的展现。

系统方案

在当前鸿蒙next系统提供的文字排版方法基本没有合适使用的接口,包括imagespan和RichEditor,根据AI的回答,也只能harmony OS的旧语法

.textIndent(50.0)
.mode(textIndentMode.last_line)

实际该方法并不支持。

实现方案

思考一下关于这类型排版,基本只能依靠算法去变更展现内容,根据文字容器的宽度调整内容,添加文字尾部的空间和加上省略号,ImageSpan在这里就变成了一个可行的方案,缩减足够的文字通过span就能顺序展现图片,而且这种情况也能合理覆盖文字不满多行的情况。

代码实现

调整文本内容可以利用MeasureText from '@ohos.measure

  @Monitor('content')monitorContent() {let sliceContent:string = this.content;let flatContentWidth:number = px2vp(MeasureText.measureTextSize({textContent:sliceContent,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily}).width as number)let containerWidth = this.containerWidth;let leaveOutWidth = 30.0 + this.suffixSize.width;let flatContainerWidth = containerWidth * this.maxLines - leaveOutWidth;while (flatContentWidth > flatContainerWidth) {sliceContent = sliceContent.slice(0,sliceContent.length-1);flatContentWidth = px2vp(MeasureText.measureTextSize({textContent:sliceContent,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily}).width as number);}if (sliceContent.length < this.content.length) {sliceContent = sliceContent + "..."}this.showText = sliceContent;}

父组件需要传递容器尺寸限制
通过一个个字符去删除保证整个文本能完整的展现在容器内
多删除30vp是一个对省略号和图片间隔的大概估计

控件利用ImageSpan实现

Stack({ alignContent:Alignment.Bottom }) {Text() {Span(this.showText).fontSize(this.fontSize).fontWeight(this.fontWeight).fontFamily(this.fontFamily).lineHeight(this.lineHeight).fontColor(this.fontColor)ImageSpan(this.suffix).width(this.suffixSize.width).height(this.suffixSize.height).objectFit(ImageFit.Contain).verticalAlign(ImageSpanAlignment.CENTER).margin({left:4.0})}}.width('100%').height('100%')

使用span和imagespan的组合来保证图片紧贴文字之后

        NZArticleTitleImageSuffixComponent({content:(data[index] as NZBannerBean).title,fontSize:19.0,fontWeight:500,fontColor:$r('app.color.home_banner_title_color'),fontFamily:"HarmonyOS Sans"containerWidth:px2vp(DisplayUtil.getWidth())-54.0,lineHeight:26.0,maxLines:2.0,suffix:$r('app.media.nanlogo_red'),suffixSize:{width:20.0,height:20.0},suffixAlign:ImageSpanAlignment.CENTER

调用方传递文字容器的大小限制,内容,字体相关属性,行数限制,后缀图片,大小限制,对齐方式。

实际效果
两行限制超出容器
两行限制不超出容器

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

相关文章:

  • 武汉 外贸网站建设办公软件速成培训班
  • 深圳模板网站建设哪家好购买链接平台
  • 武威市住房和城乡建设局网站优化的定义
  • 网站写文案网络营销竞价推广
  • 培训机构网站建设方案怎么制作自己的网站
  • 搭建网站的免费程序曼联vs曼联直播
  • 安徽鲲鹏建设集团有限公司网站seo建设者
  • 网络营销公长沙官网seo技术
  • 微信里面的小程序百度seo点击软件
  • 南京网站建设学习海外推广渠道
  • 怎么建设网站数据库个人网站的制作
  • 做网站要建立站点吗文山seo
  • 西宁高端网站建设站内优化怎么做
  • 宝山北京网站建设推广平台
  • 营销型网站建设实战感想优化电脑的软件有哪些
  • 广州商砼建站规范公众号seo排名软件
  • 网站建设费的摊销年限b站推广网站2024mmm
  • 光谷 网站建设公司搜狗输入法下载安装
  • 网站怎么做图片按按钮跳转广州百度网站推广
  • 做电影网站放抢先版网络推广员每天的工作是什么
  • excel做注册网站媒体发稿费用
  • wordpress 远程网站seo推广公司靠谱吗
  • 找外包公司做网站给源码吗seo关键词排名优化案例
  • 软件网站建设基本流程培训机构排名一览表
  • 建设网站规划书快推广app下载
  • 怎么改网站上的logo技术培训
  • 如何用ps做网站ui怎么制作网站教程
  • 桂林网站建设短信营销
  • 学校建设微网站的方案设计站长工具seo推广 站长工具查询
  • 网店运营入门基础知识专业网站优化外包