Android中设置部分字体的颜色改变,并且能点击

Android中设置部分字体的颜色改变,一共有两种方法:

1, 使用SpannableStringBuilder来实现
2, 使用 html 来实现

Andorid中设置部分字体的颜色改变,且能点击的方法:

3,使用SpannableStringBuilder来实现,或者 SpannableString来实现






1, 使用 SpannableStringBuilder  来实现部分字体颜色的改变:
//1,使用 SpannableStringBuilder , 参数中的数字表示修改的片段的起始位置和结束位置
        TextView tv_1 = (TextView) findViewById(R.id.textView_1);
        String str_1 = "使用 SpannableStringBuilder 来实现部分字体颜色的改变";
        SpannableStringBuilder ssb = new SpannableStringBuilder(str_1);
        ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
        ssb.setSpan(new ForegroundColorSpan(Color.YELLOW), 12, 22,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
        ssb.setSpan(new ForegroundColorSpan(Color.GREEN), 23, str_1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
        tv_1.setText(ssb);

效果图:









2, 使用 html 来实现部分字体的颜色的改变:

//2,使用html来修改部分字体的颜色
        TextView tv_2 = (TextView) findViewById(R.id.textView_2);
        String str_2 = "使用 Html 来实现部分字体颜色的改变";
        tv_2.setText(Html.fromHtml("使用 Html <font color = blue> 来实现部分字体颜色的改变</font>"));

效果图 :









3 , 使用SpannableStringBuilder来实现,或者 SpannableString来实现部分字体的颜色的改变,并且能点击,这里用到了ClickableSpan

        //3,实现部分字体颜色的改变,并能点击
        TextView tv_3 = (TextView) findViewById(R.id.textView_3);
        String str_3 = "实现部分字体颜";
        String str_4 = "色的改变并且能点击";
        //这里无论是使用  SpannableString 还是  SpannableStringBuilder 都一样
        SpannableString ss = new SpannableString(str_4);
//        SpannableStringBuilder s = new SpannableStringBuilder(str_4);
        MyClickableSpan clickSpan = new MyClickableSpan(this, str_4);
        ss.setSpan(clickSpan, 0, str_4.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv_3.setText(str_3);
        tv_3.append(ss);
        //必须加这一句,否则就无法被点击
        tv_3.setMovementMethod(LinkMovementMethod.getInstance());

    /**
     * 这个类 实际上和第一种改变颜色的方法差不多,只不过 那是个专门改变颜色的Span,这是个专门负责点击处理的Span
     * @author Administrator
     */
    class MyClickableSpan extends ClickableSpan{
    	private Context context;
    	private String text;
    	
    	public MyClickableSpan(Context context,String text)
    	{
    		this.context = context;
    		this.text = text;
    	}
    	
		//在这里设置字体的大小,等待各种属性
		public void updateDrawState(TextPaint ds) {
			ds.setColor(Color.RED);
			}
		
		@Override
		public void onClick(View widget) {
			Intent intent = new Intent(MainActivity.this,OtherActivity.class);
			startActivity(intent);
		}
    }

效果图:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值