編輯:關於Android編程
在這裡先看看效果圖:
OK,有時候,在我們的項目中會要求TextView中文本有一部分的字體顏色不一樣,這時我們應該使用
SpannableStringBuilder這個工具類,當然這個類的功能很強大,這裡我只是實現上面的樣式,其它的不做介紹,
SpannableStringBuilder的實現接口是Spannable這個接口,而Spannable最終都實現了CharSequence,因此我們直
接可以通過TextView.setText()來進行設置。
下面給出實現代碼:
public class StringFormatUtil { private SpannableStringBuilder spBuilder; private String wholeStr, highlightStr; private Context mContext; private int color; private int start = 0, end = 0; /** * * @param context * @param wholeStr 全部文字 * @param highlightStr 改變顏色的文字 * @param color 顏色 */ public StringFormatUtil(Context context,String wholeStr,String highlightStr,int color){ this.mContext=context; this.wholeStr=wholeStr; this.highlightStr=highlightStr; this.color=color; } public StringFormatUtil fillColor(){ if(!TextUtils.isEmpty(wholeStr)&&!TextUtils.isEmpty(highlightStr)){ if(wholeStr.contains(highlightStr)){ /* * 返回highlightStr字符串wholeStr字符串中第一次出現處的索引。 */ start=wholeStr.indexOf(highlightStr); end=start+highlightStr.length(); }else{ return null; } }else{ return null; } spBuilder=new SpannableStringBuilder(wholeStr); color=mContext.getResources().getColor(color); CharacterStyle charaStyle=new ForegroundColorSpan(color); spBuilder.setSpan(charaStyle, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return this; } public SpannableStringBuilder getResult(){ if (spBuilder != null) { return spBuilder; } return null; } }
的顏色。
public class MainActivity extends Activity { private TextView tv_show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { tv_show = (TextView) findViewById(R.id.tv_show); String wholeStr = 想要改變後面的顏色這是要改變的顏色; StringFormatUtil spanStr = new StringFormatUtil(this, wholeStr, 這是要改變的顏色, R.color.blue).fillColor(); tv_show.setText(spanStr.getResult()); } }
事先說明:定位功能在安卓6.0需要用戶手動確認權限後才能使用若需在安卓6.0適配WebView的定位功能,則需要在WebView中手動增加用戶權限訪問詳細可百度安卓6.0
介紹A StateListDrawable is a drawable object defined in XML that uses a several differe
Android 的菜單機制,在 Android 3.0 之前和之後有很大的去別,Android 3.0 推出 ActionBar ,導航的 UI 交互有很大的變化,但菜單
Android 側滑菜單的實現,參考網上的代碼,實現側滑菜單。最重要的是這個動畫類UgcAnimations,如何使用動畫類來側滑的封裝FlipperLayout。1、實