zoukankan      html  css  js  c++  java
  • Android ---------- 富文本构建

    String txt="";

    int start=0,end=9;

     //创建一个 SpannableString对象

      SpannableString   str = new SpannableString(txt);

     //设置 字体(default,default-bold,monospace,serif,sans-serif) 

      str.setSpan(new TypefaceSpan("monospace"),start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

     //设置 字体大小(绝对值,单位:像素) 

    str.setSpan(new AbsoluteSizeSpan(20,true), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素

    //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍 
    str.setSpan(new RelativeSizeSpan(0.5f),start,end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //0.5f表示默认字体大小的一半 
    //设置字体前景色 
    str.setSpan(new ForegroundColorSpan(Color.MAGENTA), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置前景色为洋红色 
    //设置字体背景色 
    str.setSpan(new BackgroundColorSpan(Color.CYAN), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置背景色为青色 
    //设置字体样式正常,粗体,斜体,粗斜体 
    str.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //正常 
    str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗体 
    str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //斜体 
    str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗斜体 
    //设置下划线 
    str.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    //设置删除线 
    str.setSpan(new StrikethroughSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    //设置上下标 
    str.setSpan(new SubscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //下标   
    str.setSpan(new SuperscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //上标    
    //超级链接(需要添加setMovementMethod方法附加响应) 
    str.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //电话   
    str.setSpan(new URLSpan("mailto:webmaster@google.com"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //邮件   
    str.setSpan(new URLSpan("http://www.sistergate.com"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //网络   
    str.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //短信  使用sms:或者smsto: 
    str.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //彩信  使用mms:或者mmsto: 
    str.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //地图   
    //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍 
    str.setSpan(new ScaleXSpan(2.0f), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变 
         
    //设置图片 
    Drawable drawable = getResources().getDrawable(R.drawable.icon);  
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
    str.setSpan(new ImageSpan(drawable), 53, 57, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    //设置图片 
    ImageSpan span = new ImageSpan(this,R.mipmap.ic_launcher);
    SpannableString spannableString = new SpannableString(CONTENT);
    spannableString.setSpan(span,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    mTvTextView.setText(spannableString);
           
    mTextView.setText(msp); 
     
     
     
     
     
     
     
     
     
     
     
       
  • 相关阅读:
    POJ 2923 Relocation (状态压缩,01背包)
    HDU 2126 Buy the souvenirs (01背包,输出方案数)
    hdu 2639 Bone Collector II (01背包,求第k优解)
    UVA 562 Dividing coins (01背包)
    POJ 3437 Tree Grafting
    Light OJ 1095 Arrange the Numbers(容斥)
    BZOJ 1560 火星藏宝图(DP)
    POJ 3675 Telescope
    POJ 2986 A Triangle and a Circle
    BZOJ 1040 骑士
  • 原文地址:https://www.cnblogs.com/apeandcat/p/8366485.html
Copyright © 2011-2022 走看看