android SpannableString 设置文字特殊显示

效果:

Spannable sp;
if ("智慧接送".equals(id)){
   //设置背景为空
   view.tv_left_infocontext.setBackground(null);

   //SpannableString的具体内容
   sp=new SpannableString("具体时间:  "+infoJson);

   //AbsoluteSizeSpan是指绝对尺寸,通过绝对尺寸来改变文字的大小,,这里的第二个参数为true,
   //则是以第一个参数的值,来设置文本的大小,0是指设置span开始的位置,5则是指设置span结束的位置,
   //最后一个参数,它有四种取值
   //Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前后端都不包括,就是在指定字符前面或后面,插入新字符,
   //都不会应用新的样式
   //Spannable.SPAN_EXCLUSIVE_INCLUSIVE:前面不包括,后面包括,就是在指定字符范围后面,插入新的
   //字符,会有新的样式,在前面不会
   // Spannable.SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括。
   //Spannable.SPAN_INCLUSIVE_INCLUSIVE:前后都包括。
   sp.setSpan(new AbsoluteSizeSpan(14,true),0,5,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
   sp.setSpan(new AbsoluteSizeSpan(14,true),5,sp.length(),Spannable.SPAN_INCLUSIVE_INCLUSIVE);

   //设置前5个文字的颜色,以及设置剩余文字的颜色
   sp.setSpan(new ForegroundColorSpan(Color.parseColor("#000000")),0,5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
   sp.setSpan(new ForegroundColorSpan(Color.parseColor("#918f8f")),5,sp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

   //rl_root,动态设置间距和背景颜色
                RelativeLayout rl_root=(RelativeLayout)convertView.findViewById(R.id.rl_root);
   RelativeLayout.LayoutParams lp= (RelativeLayout.LayoutParams) rl_root.getLayoutParams();
                lp.setMargins(20,0,40,0);
   rl_root.setLayoutParams(lp);
   rl_root.setBackgroundColor(Color.parseColor("#ffffff"));

}

猜你喜欢

转载自blog.csdn.net/sunshine_0707/article/details/84638673