Android控件之TextView
TextView,这个平凡得不能再平凡的的控件,在别的语言里有用叫Lable,显示文字的一般都用它了。
一个HelloWorld开始程序员们的第一个Demo.
TextView可以用来做什么,我列了一下(如果你相到其他的麻烦帮忙指点):
- 显示单一的便签内容
- 图标加文字。
- 简单的HTML文本内容或自定义同时可以加载图片。
- 内容中的某些字进行变色,甚至加点击操作。(如果微博或微信的评论)
用户加载网络图片及HTML的TextView
NetImageTextView.java
1 import java.net.URL; 2 import android.content.Context; 3 import android.graphics.drawable.Drawable; 4 import android.text.Html; 5 import android.text.Html.ImageGetter; 6 import android.text.method.LinkMovementMethod; 7 import android.util.AttributeSet; 8 import android.widget.TextView; 9 10 public class NetImageTextView extends TextView { 11 12 public NetImageTextView(Context context, AttributeSet attrs, int defStyle) { 13 super(context, attrs, defStyle); 14 } 15 16 public NetImageTextView(Context context, AttributeSet attrs) { 17 super(context, attrs); 18 } 19 20 public NetImageTextView(Context context) { 21 super(context); 22 } 23 24 public void setHtmlText(String html) { 25 setMovementMethod(LinkMovementMethod.getInstance()); 26 this.setText(Html.fromHtml(html, new ImageGetter() { 27 28 @Override 29 public Drawable getDrawable(String source) { 30 Drawable drawable = null; 31 URL url; 32 try { 33 url = new URL(source); 34 drawable = Drawable.createFromStream(url.openStream(), ""); // 获取网路图片 35 } catch (Exception e) { 36 e.printStackTrace(); 37 return null; 38 } 39 drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); 40 return drawable; 41 } 42 }, null)); 43 } 44 45 }
让部分中的部分字变色或加粗就要用到SpannableStringBuilder。
例如:
String content = "小王回复小李:赞一个"; builder = new SpannableStringBuilder(content); builder.setSpan(new StyleSpan(Typeface.BOLD), 0, 2, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textview.setText(builder);
方法 public void setSpan (Object what, int start, int end, int flags)可以根据需要使用,上例StyleSpan(Typeface.BOLD)是一个加粗的效果。ForegroundColorSpan是字段颜色,start,end是要操作的内容的开始和结束位置,想要理详情的使用可以参考官方文档。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。