Java代码
import android.app.Activity;import android.graphics.Color;import android.graphics.Typeface;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableString;import android.text.style.AbsoluteSizeSpan;import android.text.style.BackgroundColorSpan;import android.text.style.ForegroundColorSpan;import android.text.style.ImageSpan;import android.text.style.StrikethroughSpan;import android.text.style.StyleSpan;import android.text.style.URLSpan;import android.text.style.UnderlineSpan;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class SpannableStringActivity extends Activity implementsOnClickListener {private EditText tv;private Button underline_btn;private Button strike_btn;private Button style_btn;private Button font_btn;private Button color_btn1;private Button color_btn2;private Button url_btn;private Button image_btn;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    tv = (EditText) this.findViewById(R.id.tv);    underline_btn = (Button) this.findViewById(R.id.underline_btn);    strike_btn = (Button) this.findViewById(R.id.strike_btn);    style_btn = (Button) this.findViewById(R.id.style_btn);    font_btn = (Button) this.findViewById(R.id.font_btn);    color_btn1 = (Button) this.findViewById(R.id.color_btn1);    color_btn2 = (Button) this.findViewById(R.id.color_btn2);    url_btn = (Button) this.findViewById(R.id.url_btn);    image_btn = (Button) this.findViewById(R.id.image_btn);    underline_btn.setOnClickListener(this);    strike_btn.setOnClickListener(this);    style_btn.setOnClickListener(this);    font_btn.setOnClickListener(this);    color_btn1.setOnClickListener(this);    color_btn2.setOnClickListener(this);    url_btn.setOnClickListener(this);    image_btn.setOnClickListener(this);}@Overridepublic void onClick(View v) {    switch (v.getId()) {    case R.id.underline_btn:        addUnderLineSpan();        break;    case R.id.strike_btn:        addStrikeSpan();        break;    case R.id.style_btn:        addStyleSpan();        break;    case R.id.font_btn:        addFontSpan();        break;    case R.id.color_btn1:        addForeColorSpan();        break;    case R.id.color_btn2:        addBackColorSpan();        break;    case R.id.url_btn:        addUrlSpan();        break;    case R.id.image_btn:        addImageSpan();        break;}}/*** 超链接*/private void addUrlSpan() {    SpannableString spanString = new SpannableString("超链接");    URLSpan span = new URLSpan("tel:0123456789");    spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 文字背景颜色*/private void addBackColorSpan() {  SpannableString spanString = new SpannableString("颜色2");  BackgroundColorSpan span = new BackgroundColorSpan(Color.YELLOW);  spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  tv.append(spanString);}/*** 文字颜色*/private void addForeColorSpan() {    SpannableString spanString = new SpannableString("颜色1");    ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE);    spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 字体大小*/private void addFontSpan() {    SpannableString spanString = new SpannableString("36号字体");    AbsoluteSizeSpan span = new AbsoluteSizeSpan(36);    spanString.setSpan(span, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 粗体,斜体*/private void addStyleSpan() {    SpannableString spanString = new SpannableString("BIBI");    StyleSpan span = new StyleSpan(Typeface.BOLD_ITALIC);    spanString.setSpan(span, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 删除线*/private void addStrikeSpan() {    SpannableString spanString = new SpannableString("删除线");    StrikethroughSpan span = new StrikethroughSpan();    spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 下划线*/private void addUnderLineSpan() {    SpannableString spanString = new SpannableString("下划线");    UnderlineSpan span = new UnderlineSpan();    spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}/*** 图片*/private void addImageSpan() {    SpannableString spanString = new SpannableString(" ");    Drawable d = getResources().getDrawable(R.drawable.ic_launcher);    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());    ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);    spanString.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    tv.append(spanString);}}


xml布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="#ff333333"    android:orientation="vertical" >        <EditText        android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:singleLine="false"        android:inputType="none"/>    <GridLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:columnCount="4" >        <Button            android:id="@+id/image_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/image" />        <Button            android:id="@+id/url_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/url" />        <Button            android:id="@+id/color_btn1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/color1" />        <Button            android:id="@+id/color_btn2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/color2" />        <Button            android:id="@+id/font_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/font" />        <Button            android:id="@+id/style_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/style" />        <Button            android:id="@+id/strike_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/strike" />        <Button            android:id="@+id/underline_btn"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/underline" />    </GridLayout></LinearLayout>



更多相关文章

  1. android SQLite查询
  2. Android中颜色透明度对应16进制值
  3. Android(安卓)搜索到的关键字改变颜色
  4. Android(安卓)代码监控apk安装,卸载,替换
  5. android数据库的简单例子
  6. Android(安卓)RecyclerView 滑动删除例子
  7. Android(安卓)代码监控apk安装,卸载,替换
  8. android,如果某个文件存在就删除
  9. android ActionBar的使用

随机推荐

  1. 使数字成为另一个数字的因素(性能问题)
  2. 什么是一个很好的JS库,可以调整大小?
  3. extjs4 desktop 实现仿win7效果的桌面窗
  4. 谷歌地图API V3的使用限制是每个网站访问
  5. 可编辑的jquery表格插件
  6. Js中获取超链接里面传递的参数值
  7. 如何在SOF上的新帖子中没有像“Grippie”
  8. 覆盖odoo 8中的JS函数
  9. 八款Js框架介绍及比较,Dojo 、Scriptacul
  10. javascripterror 为空或不是对象.