大佬教程收集整理的这篇文章主要介绍了android中的标签用法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
String message = "Hello <br> hai<br> I am fine <hr>"; tab.setText(Html.fromHtml(messagE));
表明
你好
海
我很好
但没有横线.
Java的
String html = "Hello <br> hai<br> I am fine <hr> And here's another line"; HtmlTagHandler tagHandler = new HtmlTagHandler(); SpAnned styledText = HtmlCompat.fromHtml(html,HtmlCompat.FROM_HTML_MODE_LEGACY,null,tagHandler); textView.setText(styledText);
HtmlTagHandler.java
public class HtmlTagHandler implements Html.TagHandler { @Override public void handleTag(Boolean opening,String tag,Editable output,XMLReader xmlReader) { if (tag.equals("hr")) { handleHrTag(opening,output); } } private void handleHrTag(Boolean opening,Editable output) { final String placeholder = "\n-\n"; if (opening) { output.insert(output.length(),placeholder); } else { output.setSpan(new HrSpan2(),output.length() - placeholder.length(),output.length(),SpAnned.SPAN_EXCLUSIVE_EXCLUSIVE); } } }
HrSpan.java
public class HrSpan extends replacementSpan { @Override public int getSize(@NonNull Paint paint,CharSequence text,int start,int end,@Nullable Paint.FontMetricsInt fm) { return 0; } @Override public void draw(@NonNull Canvas canvas,float x,int top,int y,int bottom,@NonNull Paint paint) { paint.setStyle(Paint.Style.stroke); paint.setstrokeWidth(8); // 8px tall line int middle = (top + bottom) / 2; // Draw a line across the middle of the canvas canvas.drawLine(0,middle,canvas.getWidth(),paint); } }
科特林
val html = "Hello <br> hai<br> I am fine <hr> Another line here <hr><hr>" val tagHandler = HtmlTagHandler() textView.text = HtmlCompat.fromHtml(html,tagHandler)
class HtmlTagHandler : Html.TagHandler { override fun handleTag(opening: Boolean,tag: String?,output: Editable?,xmlReader: XMLReader?) { if (output == null) return when (tag) { "hr" -> handleHrTag(opening,output) // Handle other tags if needed } } private fun handleHrTag(opening: Boolean,output: EditablE) { val placeholder = "\n-\n" // Makes sure the HR is drawn on a new line if (opening) { output.insert(output.length,placeholder) } else { output.setSpan(HrSpan(),output.length - placeholder.length,output.length,SpAnned.SPAN_EXCLUSIVE_EXCLUSIVE) } } }
class HrSpan : replacementSpan() { override fun getSize(paint: Paint,text: CharSequence?,start: Int,end: Int,fm: Paint.FontMetricsInt?) = 0 override fun draw( canvas: Canvas,x: Float,top: Int,y: Int,bottom: Int,paint: Paint ) { paint.style = Paint.Style.stroke paint.strokeWidth = 8f // Draw line in the middle of the available space val middle = ((top + bottom) / 2).toFloat() canvas.drawLine(0f,canvas.width.toFloat(),paint) } }
这会给你一个像这样的结果.它匹配TextView的宽度,因此如果您希望线占据整个宽度,请将TextView width属性更改为match_parent.
以上是大佬教程为你收集整理的android中的标签用法全部内容,希望文章能够帮你解决android中的标签用法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。