TextView基本学习

作者: 肱二头肌的孤单 | 来源:发表于2016-08-04 00:31 被阅读246次

    TextView如何产生丰富的文本。

    显示文本


    1. <font>设置颜色和字体
    2. <big/> 设置大小号
    3. <small/> 设置小号
    4. <i/> <b/> 设置斜体,粗体
    5. <a/>链接地址
    6. <img/> 插入图片
    • 使用实例

            String html = "<font color='red'>我爱android</font><br>";
            html += "<font color='blue'><big><i>新的测试</i></big></font><p>";
            html += "<big><a href='http://www.baidu.com'>百度</a></big>";
            CharSequence mychr = Html.fromHtml(html);
            tv1.setText(Html.fromHtml(html));
            tv1.setMovementMethod(LinkMovementMethod.getInstance());  //点击的时候产生超链接。
    
            String text = "我的url: http://www.sina.com\n";
            text += "我的email: 123436059@qq.com\n";
            text += "我的电话: 1868480621";
            tv2.setText(text);
            tv2.setMovementMethod(LinkMovementMethod.getInstance());
    
       注意2个方法,一个是html格式的使用。Html.fromHtml(html)。
       一个是产生超链接,必须要在textview里设置一个属性 == android:autoLink="all" == 方能生效。  
    

    显示表情和文本


    显示图片的要点:

    1. 利用反射得到资源名
    2. imageget的使用
    • 使用实例

       public int getResoureId(String name) {
            try {
                //根据资源id的变量名获得Field对象,使用反射机制来实现
                Field field = R.drawable.class.getField(name);
                //取得并返回资源的id的字段(静态变量)
                return Integer.parseInt(field.get(null).toString());
            } catch (Exception e) {
                e.printStackTrace();
            }
            return 0;
        } 
            //------------------------------------
            String html = "图像1<img src='m10'/>图像2<img src='m12'/>";
            html += "图像3<img src='m13'/><p>图像4<a href='http://www.baidu.com'><img src='m10'/></a>";
            CharSequence text = Html.fromHtml(html, new Html.ImageGetter() {
                @Override
                public Drawable getDrawable(String source) {
                    //获得系统资源的信息。
                    if (getResoureId(source) == 0) {
                        Log.d("taxi", "erro");
                        return null;
                    }
                    Drawable drawable = getResources().getDrawable(getResoureId(source));
                    return drawable;
                }
            }, null);
    
            tvIcion.setText(text);
            tvIcion.setMovementMethod(LinkMovementMethod.getInstance());
    

    关键是这2个方法的运用。

    textview跳转activity(点击局部跳转)


    关键以下4点:

    1. SpannableString的使用
    2. SpannableString.setSpan
    3. ClickableSpan()
    4. setMovementMethod(LinkMovementMethod.getInstance())的使用
    • 使用实例

    
            SpannableString mystring1 = new SpannableString(text1);
            SpannableString mystring2 = new SpannableString(text2);
    
            mystring1.setSpan(new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                    startActivity(new Intent(context, TestA_Activity.class));
                }
            }, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            mystring2.setSpan(new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                    Log.d("taxi", "点击了跳转");
                }
            }, text2.indexOf("activity"), text2.indexOf("activity") + "activity".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            tv1.setText(mystring1);
            tv1.setMovementMethod(LinkMovementMethod.getInstance());
    
            tv2.setText(mystring2);
            tv2.setMovementMethod(LinkMovementMethod.getInstance());
    

    点击事件的获取。

    跑马灯效果


      在看代码前,先讲解一下等下会碰到的属性:
    
    android:elipsize: 如果文本长度大于TextView的显示长度,则隐藏那一部分,可赋值为:none(不隐藏)、start(隐藏开始)、middle(隐藏中间)、end(隐藏结束)、marquee(滚动效果)。
    android:marqueRepeatLimit:设定需要重复动画的次数,传递一个int值,-1为无限循环。
    android:focusable:是否允许获得焦点,传递一个bool值。
    android:focusableInTouchMode:是否在获得焦点时对控件有联系,传递一个bool值。
    

    关键的就是这几个属性。
    ==tv_anim.setMovementMethod(LinkMovementMethod.getInstance());在代码中如果设置了这个属性,也会使跑马灯效果失效。==

    相关文章

      网友评论

        本文标题:TextView基本学习

        本文链接:https://www.haomeiwen.com/subject/owlcsttx.html