【Android 开发】:TextView的几种使用方法

1. TextView简介

TextView主要是在android中实现文字说明等功能。主要实现功能如下:

1. 显示丰富的文本(URL、字体大小、颜色等): 在TextView中预定了一些类似HTML的标签,通过标签可以使TextView控件显得不懂颜色、大小、字体的文字。

:设置颜色和字体

:设置大小号

:设置小号

\:斜体、粗体

:链接地址

:插入图片

2. 使用这些标签可以用Html.fromHtml方法将这些标签的字符串转换成Charsequenece对象,然后在TextView中进行设置。如果想在显示的文本中将URL地址、邮箱地址、电话产生超链接的效果可以使用android:autoLink来设置。

该属性如下:

【Android 开发】:TextView的几种使用方法_第1张图片

2. 实战案例

1). 如何显示文本(URL、不同大小、字体、颜色的文本)

1. 主要代码

    //添加一段html的标志
        String html = "I love android

"; html += "百度"; CharSequence charSequence = Html.fromHtml(html); textView1.setText(charSequence); textView1.setMovementMethod(LinkMovementMethod.getInstance()); //点击的时候产生超链接 String text = "我的URL: http://www.sina.com\n"; text+="我的email: [email protected]\n"; text+="我的电话: + 86 010-1234567"; textView2.setText(text); textView2.setMovementMethod(LinkMovementMethod.getInstance());


2. 程序执行结果

【Android 开发】:TextView的几种使用方法_第2张图片

2). 在TextView中显示表情图像和文本

1. 主要代码

 ...
public class TextDemo2 extends Activity {

    private TextView textView;

    public int getResourceId(String name) {

        try {
            // 根据资源的ID的变量名获得Field的对象,使用反射机制来实现
            Field field = R.drawable.class.getField(name);
            // 取得并返回资源的id的字段(静态变量)的值,使用反射机制
            return Integer.parseInt(field.get(null).toString());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return 0;
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initComponent();
        textView.setTextColor(Color.BLACK);
        textView.setBackgroundColor(Color.WHITE);
        textView.setTextSize(20);
        String html = "图像1图像2图像3

"; //

// : // 表示段落符 html += "图像4图像5"; /* * 查看Html类的fromHtml()方法,从提供的html的文本返回显示成文本类型 public static Spanned * fromHtml (String source, Html.ImageGetter imageGetter, * Html.TagHandler tagHandler) */ CharSequence charSequence = Html.fromHtml(html, new ImageGetter() { @Override public Drawable getDrawable(String source) { // TODO Auto-generated method stub // 获得系统资源的信息,比如图片信息 Drawable drawable = getResources().getDrawable(getResourceId(source)); if (source.equals("image3")) { drawable.setBounds(0, 0, drawable.getIntrinsicHeight() / 2, drawable.getIntrinsicHeight() / 2); } else { drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); } return drawable; } }, null); textView.setText(charSequence); textView.setMovementMethod(LinkMovementMethod.getInstance()); } private void initComponent() { textView = (TextView) this.findViewById(R.id.textview); } }

2. 程序执行结果

【Android 开发】:TextView的几种使用方法_第3张图片<-点击第四个图像连接到"百度"的主页-> 【Android 开发】:TextView的几种使用方法_第4张图片

3). 单击链接弹出Activity

1. 主要代码

        String text1 = "显示Activity1";
        String text2 = "显示Activity2";
        
    //主要是用来拆分字符串
        SpannableString spannableString = new SpannableString(text1);
        SpannableString spannableString2 = new SpannableString(text2);
        
    /*
     * 查看文档setSpan()方法
     * public void setSpan (Object what, int start, int end, int flags)
     * 表示点击Text的触发范围是 start字符开始到end字符结束
     */
        
        spannableString.setSpan(new ClickableSpan() {
            
            @Override
            public void onClick(View widget) {
                Intent intent = new Intent(TextDemo3.this, Other.class);
                startActivity(intent);
            }
        }, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        spannableString2.setSpan(new ClickableSpan() {
            
            @Override
            public void onClick(View widget) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(TextDemo3.this, Other.class);
                startActivity(intent);
            }
        }, 0, text2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        textView1.setText(spannableString);
        textView2.setText(spannableString2);
        textView1.setMovementMethod(LinkMovementMethod.getInstance());
        textView2.setMovementMethod(LinkMovementMethod.getInstance());
2. 程序执行结果

【Android 开发】:TextView的几种使用方法_第5张图片<-点击连接到另外一个Activity->【Android 开发】:TextView的几种使用方法_第6张图片

4). 用TextView实现跑马灯效果

1. 主要代码

        String html = "网易科技讯 5月25日消息,据国外媒体报道,消息人士称,雅虎已经正式向新闻集团(News Corp)和沃尔特·迪斯尼公司拥有的视频服务Hulu提交收购要约。";
        
        CharSequence charSequence = Html.fromHtml(html);
        textView.setText(charSequence);
        textView.setMovementMethod(LinkMovementMethod.getInstance());

TextView 属性[关键]

    
[注意]这几个属性是关键的属性: singleLine 、ellipsize 、marqueeRepeatLimit 、focusable、focusableInTouchMode

2. 程序执行结果

【Android 开发】:TextView的几种使用方法_第7张图片<-点击"网易"连接到网易主界面->【Android 开发】:TextView的几种使用方法_第8张图片



你可能感兴趣的:(【Android,开发】)