1. 程式人生 > >Android中如何給TextView新增下劃線、設定不同字型和顏色

Android中如何給TextView新增下劃線、設定不同字型和顏色

一、如何給TextView新增下劃線以及點選跳轉

String txt = "點選跳轉到百度";
        SpannableString spannableString = new SpannableString(txt);
        spannableString.setSpan(new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                ds.setColor(getResources().getColor(R.color.red));  //設定下劃線顏色
                ds.setUnderlineText(true);  // 顯示下劃線
            }

            @Override
            public void onClick(View view) {     // TextView點選事件      
                    String pageUrl = "http://www.baidu.com";
                    if (!TextUtils.isEmpty(pageUrl)) {
                        WebViewActivity.toHere(getActivity(), pageUrl, "百度", false);
                    }
                }
            }
        }, 0, txt.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv_goto_web.setText(spannableString);
tv_goto_web.setMovementMethod(LinkMovementMethod.getInstance());

二、如何給TextView文字設定不同字型大小和顏色?

1、設定不同顏色

private String setFontColorSize(String label, int digit) {
        StringBuilder sb = new StringBuilder();
        sb.append("<font color='#EFEFEF'>" + label + "</font>")
                .append("<font color='#ffffff'>" + digit + "</font>");
        return sb.toString();
}
2、設定不同字型大小以及字型顏色
//設定不同字型樣式的文字
    private SpannableString setDiffTextStyle(String label, String digit, int label_style, int digit_style) {
        String str = label + digit;
        SpannableString ss = new SpannableString(str);
        ss.setSpan(new TextAppearanceSpan(MyAssetActivity.this, label_style),     //R.style.DDqbProfitTextViewLabelStyle
                0, label.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        ss.setSpan(new TextAppearanceSpan(MyAssetActivity.this, digit_style),     //R.style.DDqbProfitTextViewDigitStyle
                label.length(), str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        return ss;
    }
style.xml:
<!--年化收益率 不同字型style-->
<style name="DDqbProfitTextViewLabelStyle">
<item name="android:textColor">@color/Ddqb_Color_9FA2A6</item>
    <item name="android:textSize">@dimen/txt_size16</item>
</style>
<style name="DDqbProfitTextViewDigitStyle">
    <item name="android:textColor">@color/Ddqb_Color_9FA2A6</item>
    <item name="android:textSize">@dimen/txt_size18</item>
</style>