zoukankan      html  css  js  c++  java
  • 字符间距——扩展

    一:先介绍如何设置字体的颜色,大小;http://blog.csdn.net/lukejunandroid/article/details/25892737

    (一)android.text.SpannableString
    
    构造方法:SpannableString(CharSequence source);
    
    常用方法:
    
    void    removeSpan(Object what)
    void    setSpan(Object what, int start, int end, int flags)
    final CharSequence    subSequence(int start, int end)
    Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
     
    
    (二)android.text.style.TypefaceSpan
    构造方法
    TypefaceSpan(String family)
    TypefaceSpan(Parcel src)
    Changes the typeface family of the text to which the span is attached.

    (三)Spanned继承了接口CharSequence
    Spans of type SPAN_EXCLUSIVE_EXCLUSIVE do not expand to include text inserted at either their starting or ending point.
    不扩展到(文字的开头或结尾点)

    效果预览:

     1 public class MainActivity extends ActionBarActivity {  
     2     private TextView tv, tv2;  
     3     private SpannableString sStr, sStr2;  
     4     @Override  
     5     protected void onCreate(Bundle savedInstanceState) {  
     6         super.onCreate(savedInstanceState);  
     7         setContentView(R.layout.activity_main);  
     8         tv = (TextView) this.findViewById(R.id.textView1);  
     9         tv2 = (TextView) this.findViewById(R.id.textView2);  
    10         //创建一个SpannableString对象  
    11         sStr = new SpannableString("最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞,道一声珍重,道一声珍重,那一声珍重里有蜜甜的忧愁");  
    12         //设置字体(default,default-bold,monospace(单一间隔),serif(衬线),sans-serif(无衬线))  
    13         sStr.setSpan(new TypefaceSpan("default"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    14         sStr.setSpan(new TypefaceSpan("default-bold"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    15         sStr.setSpan(new TypefaceSpan("monospace"), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    16         sStr.setSpan(new TypefaceSpan("serif"), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    17         sStr.setSpan(new TypefaceSpan("sans-serif"), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    18         //设置字体大小(绝对值,单位:像素),第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素  
    19         sStr.setSpan(new AbsoluteSizeSpan(20), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    20         sStr.setSpan(new AbsoluteSizeSpan(20, true), 12, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);       
    21         //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍   ,0.5表示一半  
    22         sStr.setSpan(new RelativeSizeSpan(0.5f), 14, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
    23         //设置字体前景色     
    24         sStr.setSpan(new ForegroundColorSpan(Color.RED), 16, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
    25         //设置字体背景色     
    26         sStr.setSpan(new BackgroundColorSpan(Color.CYAN), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    27         //设置字体样式: NORMAL正常,BOLD粗体,ITALIC斜体,BOLD_ITALIC粗斜体     
    28         sStr.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 20, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
    29         sStr.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     
    30         sStr.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 23, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     
    31         sStr.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 23, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    32         //设置下划线     
    33         sStr.setSpan(new UnderlineSpan(), 24, 26, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);               
    34         //设置删除线     
    35         sStr.setSpan(new StrikethroughSpan(), 26, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    36         //设置上下标     
    37         sStr.setSpan(new SubscriptSpan(), 28, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);       
    38         sStr.setSpan(new SuperscriptSpan(), 30, 32, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
    39         //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍 ,2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变  
    40         sStr.setSpan(new ScaleXSpan(2.0f), 32, 34, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
    41         //设置项目符号     
    42         sStr.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,sStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色  
    43         //设置图片     
    44         Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);      
    45         drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
    46         sStr.setSpan(new ImageSpan(drawable), 24, 26, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    47           
    48         tv.setText(sStr);  
    49         tv.setMovementMethod(LinkMovementMethod.getInstance());  
    50           
    51         sStr2 = new SpannableString("电话邮件百度一下短信彩信进入地图");  
    52         //超级链接(需要添加setMovementMethod方法附加响应)     
    53         sStr2.setSpan(new URLSpan("tel:8008820"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //电话        
    54         sStr2.setSpan(new URLSpan("mailto:kejunlu@qq.com"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //邮件        
    55         sStr2.setSpan(new URLSpan("http://www.baidu.com"), 4, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络        
    56         sStr2.setSpan(new URLSpan("sms:10086"), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:     
    57         sStr2.setSpan(new URLSpan("mms:10086"), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:     
    58         sStr2.setSpan(new URLSpan("geo:32.123456,-17.123456"), 12, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图   
    59           
    60         tv2.setText(sStr2);  
    61         tv2.setMovementMethod(LinkMovementMethod.getInstance());  
    62     }  

     

     


     

     

  • 相关阅读:
    官方源、镜像源汇总
    Kubernetes V1.15 二进制部署集群
    ZABBIX 4.0 LTS 部署
    SSH + Google Authenticator 安全加固
    Hadoop+HBase 集群搭建
    自动化运维之PSSH
    KVM之CPU虚拟化
    GoAccess日志分析工具
    HTTPS之acme.sh申请证书
    AWStats日志分析系统
  • 原文地址:https://www.cnblogs.com/liyanli-mu640065/p/4523597.html
Copyright © 2011-2022 走看看