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

铜煤建设网站网站建站的方式主要有哪几种

铜煤建设网站,网站建站的方式主要有哪几种,建设银行个人网站登陆,网站是广西住房和城乡建设厅自我感觉做什么事情都是事倍功半#xff0c;同样性格还是丢三落四的人。记录每一次解决问题的思路经过#xff0c;以供自我学最终效果前几天让做一个效果如上图#xff0c;于是引发了一些列的思路风暴#xff1a;(思路1)TextViewHtml的形式#xff1a;html在网页实现很常见…自我感觉做什么事情都是事倍功半同样性格还是丢三落四的人。记录每一次解决问题的思路经过以供自我学最终效果前几天让做一个效果如上图于是引发了一些列的思路风暴(思路1)TextViewHtml的形式html在网页实现很常见的所以不免第一个反应就是用html。于是让前端哥们写了一段html文本但是当我用着个文本显示的时候发现没有效果于是开始想是不是因为哥们用的CSS3.0html5的原因(因为可能手机的TextView不支持所以可能是这原因)然后去网上搜索看TextView都支持什么html标签最后发现TextView支持有限的Html标签其中知识一些简单的字体颜色背景还不支持CSS(更不用说CSS3.0了)思路1总结整个过程耗费了半个下午其中还包括1一个人情(前端哥们的帮忙) 。查询TextView具体支持标签在Html.from()的方法中查找知识点总结TextView支持的html很是有限的关于字体的样式还是用自个的标签。而且最后html会被转换span的形式(思路2)ImageScpan自定义drawable方式textviewhtml不行,那么只能用span。为什么使用ImageSpan原因1因为可以把“服务中”这个块当成图片。如果用ImageScpan实现了的话后期可以随便换成任何图片。2。不使用ImageSpan的话只能使用backgroundscpan,relativespan和字体颜色span等至少三个集合有点多了感觉最重要的是Imagespan是可以到行尾部换行了(解释如果行尾的预留的宽度不够的话会另起一行。所选文字对于一个图片块)不知道其他的行不行(解释字面意思backgroundspan只是改变所选文章的背景色所针对的文字还是一个对一个。另外两个span一样的)。使用imagespan图片的形式是合理的选择既然这个形式的话那么imagespan自定义的drawable是最好的思路出现了这里是因为自定义drawable可以绘制任何图片。于是要自个实现一个drawable和系统的imagespan组装这个效果。到这里以为终于可以了走几步才发现嘿嘿...系统的Imagescpan不行不能和文字垂直居中并且当所使用图片高度大于文字的ascent(。好像是这个。 )时改行的行高使用会加上一定高度。于是上网搜索垂直居中ImageScpan 。思路2总结整个过程进展也算合理。最后的结果是搜索的垂直居中imagescpan自定义drawable。(出错了为什么不直接写一个自定义自个的Imagescpan呢)工作量相对多自定义两个东西知识点总结1系统的Imagescpan不行不能和文字垂直居中并且当所使用图片高度大于文字的ascent(。好像是这个。 )时改行的行高使用会加上一定高度。于是上网搜索垂直居中ImageScpan 。2牵扯到了drawable自定义 了解到当drawable.draw(canvas)之前 drawable.getbouds返回的区域必须是有个有空间的区域。不能是高为0宽为0这样的话只会看不到3中间搜索到了一个大神写的垂直居中的ImageSpan(思路3) 自定义自个的ImageSpan直接自定义自个的span抛弃了思路2还用自个写自定义drawable显然这个是不错的。直接朝这个方向前进吧最后完成了效果思路3总结canvas.drawline的时候水平线应该是字体的baseline的位置。针对这个问题最终总结1 是因为自个不知道textview支持多少html标签所以有了思路1。途中得到的战果TextView支持的html很是有限的关于字体的样式还是用自个的标签。而且最后html会被转换span的形式2 为什么会出现思路2的情况有两个需要自定义的类是因为当时大脑乱纠结这个问题太长时间了。没想过直接二合一直接自定义一个 途中得到的战果系统的Imagescpan不行不能和文字垂直居中并且当所使用图片高度大于文字的ascent(。好像是这个。 )时改行的行高使用会加上一定高度。于是上网搜索垂直居中ImageScpan 。牵扯到了drawable自定义 了解到当drawable.draw(canvas)之前 drawable.getbouds返回的区域必须是有个有空间的区域。不能是高为0宽为0这样的话只会看不到中间搜索到了一个大神写的垂直居中的ImageSpan在xml中设置textview的行高不会体现的设置字体高度(原以为会体现到字体 dscent )只是体现到行与行之间的距离上献上最后的两个重要的ImageSpan网上搜索的某个大神public class VerticalImageSpan extends ImageSpan { //根据图片调整字体来是适应图片的高度public VerticalImageSpan(Context context,int drawableid) {super(context,drawableid);}/*** update the text line height*/Overridepublic int getSize(Paint paint,CharSequence text, intstart, intend, Paint.FontMetricsInt fontMetricsInt) { //设置图片块的宽度Drawable drawable getDrawable();Rect rect drawable.getBounds(); //注意点这个rect应该是有效的空间 高度为0宽度为0 drawable就绘制不出来在这个地方是用if(fontMetricsInt !null) { //来调整字体高度的因为要让文本行适应图片高度Paint.FontMetricsInt fmPaint paint.getFontMetricsInt();int fontHeight fmPaint.descent- fmPaint.ascent;int drHeight rect.bottom- rect.top;int centerY fmPaint.ascent fontHeight /2;fontMetricsInt.ascent centerY - drHeight /2;fontMetricsInt.top fontMetricsInt.ascent;fontMetricsInt.bottom centerY drHeight /2;fontMetricsInt.descent fontMetricsInt.bottom;}return rect.right;}/*** see detail message in android.text.TextLine**paramcanvasthe canvas, can be null if not rendering*paramtextthe text to be draw*paramstartthe text start position*paramendthe text end position*paramxthe edge of the replacement closest to the leading margin*paramtopthe top of the line //文本所在改行的顶部*paramythe baseline //文本的基准线*parambottomthe bottom of the line //文本所在改行的底部 及下行的顶部xml文件中的设置的行间距会直接影响 bottom到baseline的距离*parampaintthe work paint*/Overridepublic void draw(Canvas canvas,CharSequence text, int start, int end,float x, int top, inty, int bottom,Paint paint) {CharSequence targetTexttext.subSequence(start,end);Log.v(文字,targetText.toString());Drawable drawable getDrawable();canvas.save();Rect rect drawable.getBounds(); //注意点这个rect应该是有效的空间 高度为0宽度为0 drawable就绘制不出来Paint.FontMetricsInt fmPaint paint.getFontMetricsInt();int fontHeight fmPaint.descent- fmPaint.ascent;int centerY y fmPaint.descent- fontHeight /2;int transY centerY - (rect.bottom- rect.top) /2;canvas.translate(x,transY);drawable.draw(canvas);canvas.restore();}}这个是我最终的图文居中span,如下public class CustomSpan extends ImageSpan { //图片适应文本行高度int resourceId;int textColor;float textRadio;int marginH;//左右间隔Rect rect;Drawable drawable;publicCustomSpan(Context context, int resourceId, int textColor, float textRadio, int marginH) {super(context,resourceId);this.resourceId resourceId;drawable context.getResources().getDrawable(resourceId);this.textRadio textRadio;this.textColor textColor;this.marginH marginH;}Overridepublic int getSize(Paint paint,CharSequence text, intstart, intend,Paint.FontMetricsInt fm) { //设置图片块的宽度CharSequence targetTexttext.subSequence(start,end);Paint.FontMetricsInt fmPaint paint.getFontMetricsInt();int txtW (int) Math.ceil(paint.measureText(targetText.toString()));int fontHeight fmPaint.descent- fmPaint.ascent;rectnewRect(0,0,txtW,fontHeight);return rect.right2*marginH;}/*** see detail message in android.text.TextLine**paramcanvasthe canvas, can be null if not rendering*paramtextthe text to be draw*paramstartthe text start position*paramendthe text end position*paramxthe edge of the replacement closest to the leading margin*paramtopthe top of the line //文本所在改行的顶部*paramythe baseline //文本的基准线*parambottomthe bottom of the line //文本所在改行的底部 及下行的顶部xml文件中的设置的行间距会直接影响 bottom到baseline的距离*parampaintthe work paint*/Overridepublic void draw(Canvas canvas,CharSequence text, int start, int end, float x, int top, int y, int bottom,Paint paint) {CharSequence targetTexttext.subSequence(start,end);intoldTextColor paint.getColor();floatoldTextSize paint.getTextSize();// canvas.drawLine(0,top,400,top,paint);// canvas.drawLine(0,y,400,y,paint);// canvas.drawLine(0,bottom,400,bottom,paint);Paint.FontMetricsInt fmPaint paint.getFontMetricsInt();int oldfontascent fmPaint.ascent;paint.setColor(textColor);paint.setTextSize(oldTextSize*textRadio);fmPaint paint.getFontMetricsInt();int txtW (int) Math.ceil(paint.measureText(targetText.toString()));int fontHeight fmPaint.descent- fmPaint.ascent;canvas.save();canvas.translate(marginHx,yoldfontascent);//移动到该块的原点drawable.setBounds(rect);//背景的绘制drawable.draw(canvas);Log.e(尺寸,rect.bottom-((rect.bottom-fontHeight)),(0-oldfontascent*textRadio));canvas.translate((rect.right-txtW)/2.0f,rect.bottom/2.ffontHeight/2-fmPaint.descent); //移动的值是相对的。移动到“块”中字体“服务中”baselinecanvas.drawText(targetText.toString(),0,0,paint);paint.setColor(oldTextColor);paint.setTextSize(oldTextSize);canvas.restore();}}
http://www.zqtcl.cn/news/74795/

相关文章:

  • 医程通 网站做的太wordpress计费查询
  • 建设工程质量安全监督站官方网站城市宣传网站建设方案
  • 哪家网络公司做网站家装室内设计培训班哪里
  • 商户网站唯一订单号seo服务 文库
  • 晋江网站设计wordpress上传自己写的网页
  • 大型医院设计网站建设兰州官网seo诊断
  • 企业网站托管哪家好软件后端开发
  • jsp做的网站可以用的公司变更名称和经营范围
  • 怎么做律师事务所的网站南沙网站建设公司哪家好
  • 网站域名注册商标有什么好处仓储管理系统软件排名
  • 单位 内网网站建设文安做网站
  • 网站官网认证加v怎么做兰州网站建设博客
  • 心雨在线高端网站建设创新视频网站如何做盗链
  • 桂林 门户网站福州百度网站排名优化
  • 模板网站的优势有哪些wordpress程序上传
  • 晋江网站网站建设模块化wordpress企业主题
  • 公司注册网站需要什么条件刷赞网站推广空间免费
  • wordpress主题的文件在哪企业网站优化的原则
  • 南通网站建设技术支持wordpress php 版本号
  • 做物流网站多少钱怎么做网赌网站
  • 网站弹窗怎么做后台网站下载
  • 呼和浩特企业网站建设新闻媒体发布平台
  • 湖北钟祥建设局网站做电子商务网站 费用
  • 网站建设中应该返回502还是301廊坊企业建站
  • 浙江网站建设模板网站建设公司内网网站的意义
  • 厦门seo网站关键词优推广微信怎么申请小程序
  • ppt网站模板免费网站注册免费创建网站
  • 爱游戏app下载官方网站江西最近发生的新闻
  • 论文网站建设与运营网站开发 文学
  • 装修公司网站怎么建设最好的搜索引擎