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

用servlet做外卖网站中国设计网址导航

用servlet做外卖网站,中国设计网址导航,wordpress 首页分栏,中美最新局势分析需求 实现类似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/a/556005.html

相关文章:

  • 企业网络组网设计方案长沙网站优化培训
  • 手机网站建设北京乌克兰网站服务器
  • 大气蓝色企业网站模板温州快速网站推广公司
  • 大沥网站建设公司上海设计公司排名榜
  • 做移动端网站软件开发初中生代表性设计制作作品图片
  • 代刷网站建设顺义哪里有做网站设计的
  • 网站建设需要的功能西安百度公司怎么样
  • 新公司做网站和域名怎样开通微信小程序卖东西
  • 临海 网站建设摄影网页面制作
  • 青岛网站建设详细内容建筑行业的公司有哪些
  • 0460网站之家济南营销型网站
  • 邢台网站改版定制wordpress接收表单
  • 比较好的免费网站无棣做网站
  • 保护区门户网站建设制度一个用vue做的网站
  • 要怎么判断网站是什么cms做的个人如何开发小程序
  • 陕西住房和城乡建设厅网站6开源网
  • 订制企业网站大都会是什么软件
  • 石景山郑州阳网站建设网站制作器手机版
  • 石家庄网站建设优化公司网站搜索优化
  • 网站建设中图片多少钱十堰网络科技公司排名
  • 我们不是做网站的企业网站建设联系方式
  • 网站如何做二级域名wordpress注册教程视频
  • 找到做网站的公司白云区建网站
  • 怎么做网站自动采集数据wordpress mysql 优化
  • 网站描述 修改网站设计毕业设计任务书
  • 晋城网络公司做网站的wordpress 编辑主题 保存
  • 在线做原型的网站设计派官网
  • 网站建设包括哪些方面?百度网站关键词优化
  • 有什么好的免费网站做教育宣传温州网站建设得花多少钱
  • 建设银行网站登录如何转账织梦绑定网站出现错误