SpannableString實現富文本

最近需要實現類似微博的轉發@某人,,點擊某人調轉個人中心

public class MainActivity extends AppCompatActivity {
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.text);
        SpannableString spannableString = new SpannableString("哈哈@//嘿嘿吼吼@//嘿咻嘻嘻啦啦啦摸摸");
        ClickableSpan clickableSpan = new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                ds.setColor(Color.BLUE);
                ds.setUnderlineText(true);
            }
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "111111", LENGTH_LONG).show();
            }
        };
        ClickableSpan clickableSpan2 = new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                ds.setColor(Color.BLUE);
                ds.setUnderlineText(true);
            }
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "2222222", LENGTH_LONG).show();
            }
        };
        spannableString.setSpan(clickableSpan, 5, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(clickableSpan2, 10,14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        textView.setText(spannableString);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }
}

簡單用法,如上先mark,後續完善更多用法

發佈了172 篇原創文章 · 獲贊 74 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章