这是Spannable在文字相关类中的关系图,包括SpannedString在类的,所有Spanned都是继承于Spannable接口,这和String和StringBuilder并列为三大字符串类。如果说String为普通字符串" />

文安县建仓机械厂

热线电话:18631662662
文安县建仓机械厂

西双版纳塑料挤出设备厂家 Android:Spannable使用小记 - Lrdcq - 驴肉の空间

新闻资讯 点击次数:100 发布日期:2026-01-14 19:52
塑料挤出机 news参看文章,这个写得好Spannable是啥?Spannable是设置文字样式的基础类,它引出和相关的一大堆类无非就做了一件事:告诉我这个文字样式是啥到底怎么渲染有些什么效果。680) {this.resized=true; this.width=680;}">这是Spannable在文字相关类中的关系图,包括SpannedString在类的,所有Spanned都是继承于Spannable接口,这和String和StringBuilder并列为三大字符串类。如果说String为普通字符串,StringBuilder是高级动态字符串,那么Spanned就是附带样式的高级字符串了,而所谓Spannable,就是描述的这个字符串的样式部分。1.Spannable使用方法Spannable在很多地方有使用到。最基本的是:
String string = "palapala";
SpannableString spannableString = new SpannableString(string);
spannableString.setSpan(new WhatSpan(), start, end, flags);
textView.setText(spannableString);
把字符串变成SpannedString对象,使用setSpan方法对字符串start到end区间设定whatspan的效果。然后就可以使用啦。高级用法,导入html,使用HTML.fromHtml方法来自动生成SpannedString,原始字符串的来源可以是fromHtml的入参字符串,也可以是xml里的预定字符串。在textview等文本空间中有一些xml属性也可以设置一些特殊字体效果,比如android:autoLink就可以识别出超链接并设置样式。2.Span样式各种预设的span类为我们带来了各种各样的样式,这些span分为两类,  - 一类是CharacterStyle,也就是说是针对单个字符可以设置的样式  - 另一类是ParagraphStyle,是针对段落进行的操作,ParagraphStyle的span运行的时候会检测目标段落前后是否有\n,如果没有的话会抛出错误"PARAGRAPH span must start at paragraph boundary",这是一个大坑请务必要注意。在此我们一一罗列一下到底有哪些span。首先是CharacterStyle类型的:  - AbsoluteSizeSpan(int size),用一个绝对的大小设置文字字号。680) {this.resized=true; this.width=680;}">  - BackgroundColorSpan(int color),设置文字背景颜色(纯色)。680) {this.resized=true; this.width=680;}">  - ClickableSpan,抽象类,可点击的文字。  - DynamicDrawableSpan,抽象类,可添加图像的文字。  - ForegroundColorSpan(int color),就是文字颜色。680) {this.resized=true; this.width=680;}">  - ImageSpan,前面放了一个图片的文字,入参可以是Bitmap,Drawable,Uri等,并且可以设置对齐方式。680) {this.resized=true; this.width=680;}">可以看见上面那句话直接被替换为图片了。LocaleSpan(Locale locale),改变文字的语言所属,新api。没法看效果。。。  - MaskFilterSpan(MaskFilter filter),为文字添加滤镜,系统提供的滤镜只有两种:BlurMaskFilter模糊滤镜与EmbossMaskFilter浮雕滤镜。680) {this.resized=true; this.width=680;}">BlurMaskFilter在纵向截取无效,不知道为什么,EmbossMaskFilter需要关闭硬件加速才有效。  - MetricAffectingSpan,抽象类,改变文字的大小高宽。  - RasterizerSpan(Rasterizer r),带光栅效果的文字。不知为何无效,也许有版本问题。  - RelativeSizeSpan(float proportion),字号大小设为和一个字号相对比例的数值。680) {this.resized=true; this.width=680;}">(2.5倍)  - ReplacementSpan,抽象类,可以被重绘的文字。  - ScaleXSpan(float proportion),以x轴按比例缩放的文字。680) {this.resized=true; this.width=680;}">横向1.2倍  - StrikethroughSpan,带删除线的文字。680) {this.resized=true; this.width=680;}">  - StyleSpan(int style),传入一个style的id,可以用style来设置样式的文字。  - SubscriptSpan,下标文字,在靠下。680) {this.resized=true; this.width=680;}">  - SuggestionSpan,提示符文字,在文字对应目标上进行提示。680) {this.resized=true; this.width=680;}">只对可编辑的文字有效,并且提示形式由rom决定。在这里是下划线。  - SuperscriptSpan,上标文字,靠上。680) {this.resized=true; this.width=680;}">  - TextAppearanceSpan,使用描述文字样式的方法统一改变文字样式,各种方法的集合体,常用。  - TypefaceSpan(String family),塑料管材生产线有特定字体的文字。680) {this.resized=true; this.width=680;}">  - URLSpan(String url),带超链接的文字。680) {this.resized=true; this.width=680;}">文本点击无效。。。。  - UnderlineSpan,带下划线的文字。680) {this.resized=true; this.width=680;}">然后是ParagraphStyle类型的,ParagraphStyle类型的接口更多:  - AlignmentSpan,接口,可以对齐的段落,主要包括如下  - AlignmentSpan.Standard(Layout.Alignment align)实现,段落可以靠左(ALIGN_NORMAL),居中(ALIGN_CENTER),靠右(ALIGN_OPPOSITE)对齐。680) {this.resized=true; this.width=680;}">居中  - BulletSpan,着重段落,前面会加一个小圆点之类的。680) {this.resized=true; this.width=680;}">  - DrawableMarginSpan(Drawable b,int pad),图片对齐段落,放一个图片和一个段落对齐,可以用于图文混排。680) {this.resized=true; this.width=680;}">在段落前添加,然而图片并不会进行行高计算。  - IconMarginSpan这个很相似,只不过变成了图标。680) {this.resized=true; this.width=680;}">透明莫名其妙,也许是默认图标样式。  - LeadingMarginSpan,接口,对开始的某些行进行margin计算:  - LeadingMarginSpan.Standard(int first, int rest),来计算首末尾行列的margin设置。680) {this.resized=true; this.width=680;}">10个像素的margin。  - LineBackgroundSpan,接口,自定义行背景。  - LineHeightSpan,接口,自定义行高计算方式。  - QuoteSpan(@ColorInt int color),引用段落,在段落前面加个表示引用的竖线,颜色自己定。680) {this.resized=true; this.width=680;}">  - TabStopSpan,接口,制表符偏移功能的接口。  - TabStopSpan.Standard(int where),制表符偏移的标准实现,入参是偏移量。680) {this.resized=true; this.width=680;}">  - WrapTogetherSpan,接口,它什么也没做~3.Flag标示在setspan的时候需要传入一个int的flag标示,有很多不同的用处和设定,在span上使用的flag主要规定了在编辑span中的文字时,span的范围如何延展:  - SPAN_INCLUSIVE_INCLUSIVE  - SPAN_MARK_POINT:前后新增字符都延展。  - SPAN_INCLUSIVE_EXCLUSIVE  - SPAN_MARK_MARK:前延展后不变。  - SPAN_EXCLUSIVE_INCLUSIVE  - SPAN_POINT_POINT:前不变后延展。  - SPAN_EXCLUSIVE_EXCLUSIVE  - SPAN_POINT_MARK:范围永远不动了。  - SPAN_PARAGRAPH:这丫是一个段落,如果是增加在本行,就延展,其他段落就不过去了。  - SPAN_POINT_MARK_MASK:这个span压根没有长度,还说什么延展。

“金翎奖”是中国游戏产业具有一定价值的游戏奖项,一直以来在游戏业被誉为游戏“奥斯卡”。“金翎奖”的颁发在鼓励游戏厂商不断为广大游戏爱好者推陈出新的同时,也反映出游戏玩家对游戏产品的认可程度西双版纳塑料挤出设备厂家 ,为游戏行业带来巨大的市场导向性及影响力。

▲茅台冰淇淋&茅台雪泥新品发布会/图源  茅台

对于数字经济产业在“十五五”期间该如何进一步发展,刘九如透露,他近期也参与了部分讨论,接下来的目标可能是将数字经济核心产业占GDP的比重提升到15%左右,将数字经济整体占GDP的比重提升到50%左右。此外,以数字技术尤其是AI技术去拉动传统产业转型升级,也将是“十五五”时期的重点。

近期,部委和地方频频释放出着力扩大国内需求的信号。国家发展改革委有关负责人此前表示,2023年,我国将从恢复和扩大消费、扩大有效投资等五方面扩大内需。多渠道增加城乡居民收入,特别是提高中低收入居民的消费能力。支持住房改善、新能源汽车等消费,培育线上线下融合等新型消费。同时,有力有序推进“十四五”规划102项重大工程实施。鼓励和吸引更多民间资本参与国家重大工程和补短板项目建设。

“卫生健康部门开展调查取证工作时,联系省内外多家检测机构,对方均表示无相应资质,无法出具检测报告。”浙江省江山市人民检察院第五检察部检察官助理毛闽燕说,“检测机构不是技术力量不够,而是此前市场需求不大,检测机构大多没有申请相应的资质。”

新闻资讯

18631662662