1. 程式人生 > >android SpannableString 設定文字特殊顯示

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"));

}