SpannableString的简单用法


 按照我的理解SpannableString     举个例子:就是让我们做出向一些登录授权中,那几行字上有的会有下划线,或者点击文字,跳转网页,还有我们使用的QQ中发消息的时候,文字加表情,实现图文混排的效果等等。。。



public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView name = (TextView) findViewById(R.id.name);
        //封装一个SpannableString
        SpannableString spannableString = new SpannableString("热烈庆祝十九大顺利召开,跟着党走是我的信念");
        //背景色
        spannableString.setSpan(new BackgroundColorSpan(Color.RED),2,5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //前景色
        spannableString.setSpan(new ForegroundColorSpan(Color.BLUE),2,5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //下划线
        spannableString.setSpan(new UnderlineSpan(),0,5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

        //图片(图文混排)
        Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
        drawable.setBounds(0,0,80,80);
        spannableString.setSpan(new ImageSpan(drawable),5,6, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //加粗
        spannableString.setSpan(new StyleSpan(Typeface.BOLD_ITALIC),7,9, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //下标
        spannableString.setSpan(new SubscriptSpan(),7,9, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

        //超文本链接
        spannableString.setSpan(new URLSpan("http://www.baidu.com"),10,12, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

        //点击事件
        spannableString.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                System.out.println("widget"+widget);
            }
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                //可以改变颜色
                ds.setColor(Color.RED);
                ds.setUnderlineText(true);
            }
        },13,15,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);



        name.setText(spannableString);
        //超文本需要加的代码
        name.setMovementMethod(new LinkMovementMethod());



        //输入框中
        EditText et_name = (EditText) findViewById(R.id.et_name);
        SpannableString spannableString1 = new SpannableString("跟着党走是我的信念");
        spannableString1.setSpan(new ForegroundColorSpan(Color.BLUE),0,4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        et_name.setText(spannableString1);
    }
}



  下面可以参考:








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值