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 }
View Code

 

让部分中的部分字变色或加粗就要用到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是要操作的内容的开始和结束位置,想要理详情的使用可以参考官方文档。




 

 

 

你可能感兴趣的:(android控件)