您好,登錄后才能下訂單哦!
Android UI中TextView的使用方法
一、TextView不同區域設置顏色,大小、點擊事件
String msg = getResources().getString(R.string.school_roll_auth); SpannableStringBuilder style = new SpannableStringBuilder(msg); // 設置字體顏色 style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.tv_color_99)), 0, msg.length() - 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.text_blue)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 設置字體背景色 style.setSpan( new BackgroundColorSpan(getResources().getColor( R.color.bg_common)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 設置可點擊部分 style.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { //do Click .... } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); ds.clearShadowLayer(); } }, msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); tv_school_roll_msg.setText(style); // 此方法在需要響應用戶事件時使用,如點擊一個電話號碼就跳轉到撥號頁面。如果不執行這個方法是不會響應事件的,即便文本看著已經是下劃線藍色字了。 tv_school_roll_msg.setMovementMethod(LinkMovementMethod.getInstance());
//設置字體不同大小 SpannableStringBuilder sb = new SpannableStringBuilder(numText); sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources() .getDimensionPixelSize(R.dimen.text_size_24)), 0, income.indexOf(".") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources() .getDimensionPixelSize(R.dimen.text_size_16)), income.indexOf(".") + 1, income.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); view.setText(sb);
注:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE參數是對區域的說明,左包含,右不包含 SpannableStringBuilder的append方法
SpannableStringBuilder sb = new SpannableStringBuilder(num); SpannableStringBuilder sbUnitName = sb.append("元"); sbUnitName.setSpan(new AbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)), num.length() - 1, num.length() + unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
append之后數符索引不是從0開始,是從原始字符開始
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。