[java] view plain copy print ?
  1. importandroid.app.Activity;
  2. importandroid.graphics.Color;
  3. importandroid.graphics.Typeface;
  4. importandroid.graphics.drawable.Drawable;
  5. importandroid.os.Bundle;
  6. importandroid.text.Spannable;
  7. importandroid.text.SpannableString;
  8. importandroid.text.style.AbsoluteSizeSpan;
  9. importandroid.text.style.BackgroundColorSpan;
  10. importandroid.text.style.ForegroundColorSpan;
  11. importandroid.text.style.ImageSpan;
  12. importandroid.text.style.StrikethroughSpan;
  13. importandroid.text.style.StyleSpan;
  14. importandroid.text.style.URLSpan;
  15. importandroid.text.style.UnderlineSpan;
  16. importandroid.view.View;
  17. importandroid.view.View.OnClickListener;
  18. importandroid.widget.Button;
  19. importandroid.widget.EditText;
  20. publicclassSpannableStringActivityextendsActivityimplements
  21. OnClickListener{
  22. privateEditTexttv;
  23. privateButtonunderline_btn;
  24. privateButtonstrike_btn;
  25. privateButtonstyle_btn;
  26. privateButtonfont_btn;
  27. privateButtoncolor_btn1;
  28. privateButtoncolor_btn2;
  29. privateButtonurl_btn;
  30. privateButtonimage_btn;
  31. /**Calledwhentheactivityisfirstcreated.*/
  32. @Override
  33. publicvoidonCreate(BundlesavedInstanceState){
  34. super.onCreate(savedInstanceState);
  35. setContentView(R.layout.main);
  36. tv=(EditText)this.findViewById(R.id.tv);
  37. underline_btn=(Button)this.findViewById(R.id.underline_btn);
  38. strike_btn=(Button)this.findViewById(R.id.strike_btn);
  39. style_btn=(Button)this.findViewById(R.id.style_btn);
  40. font_btn=(Button)this.findViewById(R.id.font_btn);
  41. color_btn1=(Button)this.findViewById(R.id.color_btn1);
  42. color_btn2=(Button)this.findViewById(R.id.color_btn2);
  43. url_btn=(Button)this.findViewById(R.id.url_btn);
  44. image_btn=(Button)this.findViewById(R.id.image_btn);
  45. underline_btn.setOnClickListener(this);
  46. strike_btn.setOnClickListener(this);
  47. style_btn.setOnClickListener(this);
  48. font_btn.setOnClickListener(this);
  49. color_btn1.setOnClickListener(this);
  50. color_btn2.setOnClickListener(this);
  51. url_btn.setOnClickListener(this);
  52. image_btn.setOnClickListener(this);
  53. }
  54. @Override
  55. publicvoidonClick(Viewv){
  56. switch(v.getId()){
  57. caseR.id.underline_btn:
  58. addUnderLineSpan();
  59. break;
  60. caseR.id.strike_btn:
  61. addStrikeSpan();
  62. break;
  63. caseR.id.style_btn:
  64. addStyleSpan();
  65. break;
  66. caseR.id.font_btn:
  67. addFontSpan();
  68. break;
  69. caseR.id.color_btn1:
  70. addForeColorSpan();
  71. break;
  72. caseR.id.color_btn2:
  73. addBackColorSpan();
  74. break;
  75. caseR.id.url_btn:
  76. addUrlSpan();
  77. break;
  78. caseR.id.image_btn:
  79. addImageSpan();
  80. break;
  81. <SPANstyle="WHITE-SPACE:pre"></SPAN>}
  82. }
  83. /**
  84. *超链接
  85. */
  86. privatevoidaddUrlSpan(){
  87. SpannableStringspanString=newSpannableString("超链接");
  88. URLSpanspan=newURLSpan("tel:0123456789");
  89. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  90. tv.append(spanString);
  91. }
  92. /**
  93. *文字背景颜色
  94. */
  95. privatevoidaddBackColorSpan(){
  96. SpannableStringspanString=newSpannableString("颜色2");
  97. BackgroundColorSpanspan=newBackgroundColorSpan(Color.YELLOW);
  98. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  99. tv.append(spanString);
  100. }
  101. /**
  102. *文字颜色
  103. */
  104. privatevoidaddForeColorSpan(){
  105. SpannableStringspanString=newSpannableString("颜色1");
  106. ForegroundColorSpanspan=newForegroundColorSpan(Color.BLUE);
  107. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  108. tv.append(spanString);
  109. }
  110. /**
  111. *字体大小
  112. */
  113. privatevoidaddFontSpan(){
  114. SpannableStringspanString=newSpannableString("36号字体");
  115. AbsoluteSizeSpanspan=newAbsoluteSizeSpan(36);
  116. spanString.setSpan(span,0,5,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  117. tv.append(spanString);
  118. }
  119. /**
  120. *粗体,斜体
  121. */
  122. privatevoidaddStyleSpan(){
  123. SpannableStringspanString=newSpannableString("BIBI");
  124. StyleSpanspan=newStyleSpan(Typeface.BOLD_ITALIC);
  125. spanString.setSpan(span,0,2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  126. tv.append(spanString);
  127. }
  128. /**
  129. *删除线
  130. */
  131. privatevoidaddStrikeSpan(){
  132. SpannableStringspanString=newSpannableString("删除线");
  133. StrikethroughSpanspan=newStrikethroughSpan();
  134. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  135. tv.append(spanString);
  136. }
  137. /**
  138. *下划线
  139. */
  140. privatevoidaddUnderLineSpan(){
  141. SpannableStringspanString=newSpannableString("下划线");
  142. UnderlineSpanspan=newUnderlineSpan();
  143. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  144. tv.append(spanString);
  145. }
  146. /**
  147. *图片
  148. */
  149. privatevoidaddImageSpan(){
  150. SpannableStringspanString=newSpannableString("");
  151. Drawabled=getResources().getDrawable(R.drawable.ic_launcher);
  152. d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
  153. ImageSpanspan=newImageSpan(d,ImageSpan.ALIGN_BASELINE);
  154. spanString.setSpan(span,0,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  155. tv.append(spanString);
  156. }
  157. }

xml布局文件

[html] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:background="#ff333333"
  6. android:orientation="vertical">
  7. <EditText
  8. android:id="@+id/tv"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:singleLine="false"
  12. android:inputType="none"/>
  13. <GridLayout
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:columnCount="4">
  17. <Button
  18. android:id="@+id/image_btn"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:text="@string/image"/>
  22. <Button
  23. android:id="@+id/url_btn"
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="@string/url"/>
  27. <Button
  28. android:id="@+id/color_btn1"
  29. android:layout_width="wrap_content"
  30. android:layout_height="wrap_content"
  31. android:text="@string/color1"/>
  32. <Button
  33. android:id="@+id/color_btn2"
  34. android:layout_width="wrap_content"
  35. android:layout_height="wrap_content"
  36. android:text="@string/color2"/>
  37. <Button
  38. android:id="@+id/font_btn"
  39. android:layout_width="wrap_content"
  40. android:layout_height="wrap_content"
  41. android:text="@string/font"/>
  42. <Button
  43. android:id="@+id/style_btn"
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:text="@string/style"/>
  47. <Button
  48. android:id="@+id/strike_btn"
  49. android:layout_width="wrap_content"
  50. android:layout_height="wrap_content"
  51. android:text="@string/strike"/>
  52. <Button
  53. android:id="@+id/underline_btn"
  54. android:layout_width="wrap_content"
  55. android:layout_height="wrap_content"
  56. android:text="@string/underline"/>
  57. </GridLayout>
  58. </LinearLayout>

更多相关文章

  1. 自定义Android(安卓)Progress Bar的颜色
  2. Android(安卓)设置圆角按下改变颜色按钮
  3. android中gridView中点击 item为选中状态
  4. android ListView内数据的动态添加与删除
  5. Android常用颜色表
  6. android最近任务列表,删除某个应用操作
  7. android listview 长按弹出菜单--ContextMenu并进行删除操作
  8. Android(安卓)购物车(精仿)可删可全选与反选
  9. android之Notification的使用

随机推荐

  1. Android控件之TabHost探究
  2. Android(安卓)- GestureDetector.onGestu
  3. Android心得4--短信
  4. 关于android 获得 图片的方式
  5. android 4.2对于addJavascriptInterface,
  6. Android 遍历界面控件
  7. Android 使用地图时的权限请求
  8. android jni java.lang.UnsatisfiedLinkE
  9. Android修改ActionBar背景颜色和标题,菜单
  10. android 获取通讯录并显示listview