Android SpannableString 基本用法

來源:互聯網
上載者:User

標籤:

以下介紹SpannableString 對文字的一些特別處理:比如字型,顏色,底線,連結和點擊事件。
先看效果:

布局代碼就不貼了,很簡單就是3個TextView.現在看MainActivity中的代碼實現:

    private TextView mTvContent1;    private TextView mTvContent2;    private TextView mTvContent3;    private String contentStr1 = "點擊事件,底線,字型顏色";    private String contentStr2 = "百度連結";    private String contentStr3 = "粗體";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //設定點擊事件,底線,字型顏色        mTvContent1 = (TextView) findViewById(R.id.tv_content1);        SpannableString ss1 = new SpannableString(contentStr1);        ss1.setSpan(new ClickableSpan() {            @Override            public void updateDrawState(TextPaint ds) {                super.updateDrawState(ds);                ds.setUnderlineText(true);//設定底線                ds.setColor(Color.RED);//設定字型顏色            }            @Override            public void onClick(View widget) {                Toast toast = Toast.makeText(MainActivity.this, "點擊", Toast.LENGTH_SHORT);                toast.show();            }        }, 0, contentStr1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        mTvContent1.setText(ss1);        mTvContent1.setHighlightColor(Color.TRANSPARENT);        mTvContent1.setMovementMethod(LinkMovementMethod.getInstance());        //設定連結        mTvContent2= (TextView) findViewById(R.id.tv_content2);        SpannableString ss2 = new SpannableString(contentStr2);        ss2.setSpan(new URLSpan("http://www.baidu.com"), 0, contentStr2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        mTvContent2.setText(ss2);        mTvContent2.setMovementMethod(LinkMovementMethod.getInstance());        //設定粗體:        mTvContent3= (TextView) findViewById(R.id.tv_content3);        SpannableString ss3 = new SpannableString(contentStr3);        ss3.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, contentStr3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        mTvContent3.setText(ss3);    }}

以上就是整個代碼:其中對於點擊和連結事件,要特別注意需要setMovementMethod,否則可能不會響應事件。

Android SpannableString 基本用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.