android SpannableString使用详解
16lz
2022-04-03
[java] view plain copy print ?
- importandroid.app.Activity;
- importandroid.graphics.Color;
- importandroid.graphics.Typeface;
- importandroid.graphics.drawable.Drawable;
- importandroid.os.Bundle;
- importandroid.text.Spannable;
- importandroid.text.SpannableString;
- importandroid.text.style.AbsoluteSizeSpan;
- importandroid.text.style.BackgroundColorSpan;
- importandroid.text.style.ForegroundColorSpan;
- importandroid.text.style.ImageSpan;
- importandroid.text.style.StrikethroughSpan;
- importandroid.text.style.StyleSpan;
- importandroid.text.style.URLSpan;
- importandroid.text.style.UnderlineSpan;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- publicclassSpannableStringActivityextendsActivityimplements
- OnClickListener{
- privateEditTexttv;
- privateButtonunderline_btn;
- privateButtonstrike_btn;
- privateButtonstyle_btn;
- privateButtonfont_btn;
- privateButtoncolor_btn1;
- privateButtoncolor_btn2;
- privateButtonurl_btn;
- privateButtonimage_btn;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- 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);
- }
- @Override
- publicvoidonClick(Viewv){
- switch(v.getId()){
- caseR.id.underline_btn:
- addUnderLineSpan();
- break;
- caseR.id.strike_btn:
- addStrikeSpan();
- break;
- caseR.id.style_btn:
- addStyleSpan();
- break;
- caseR.id.font_btn:
- addFontSpan();
- break;
- caseR.id.color_btn1:
- addForeColorSpan();
- break;
- caseR.id.color_btn2:
- addBackColorSpan();
- break;
- caseR.id.url_btn:
- addUrlSpan();
- break;
- caseR.id.image_btn:
- addImageSpan();
- break;
- <SPANstyle="WHITE-SPACE:pre"></SPAN>}
- }
- /**
- *超链接
- */
- privatevoidaddUrlSpan(){
- SpannableStringspanString=newSpannableString("超链接");
- URLSpanspan=newURLSpan("tel:0123456789");
- spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *文字背景颜色
- */
- privatevoidaddBackColorSpan(){
- SpannableStringspanString=newSpannableString("颜色2");
- BackgroundColorSpanspan=newBackgroundColorSpan(Color.YELLOW);
- spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *文字颜色
- */
- privatevoidaddForeColorSpan(){
- SpannableStringspanString=newSpannableString("颜色1");
- ForegroundColorSpanspan=newForegroundColorSpan(Color.BLUE);
- spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *字体大小
- */
- privatevoidaddFontSpan(){
- SpannableStringspanString=newSpannableString("36号字体");
- AbsoluteSizeSpanspan=newAbsoluteSizeSpan(36);
- spanString.setSpan(span,0,5,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *粗体,斜体
- */
- privatevoidaddStyleSpan(){
- SpannableStringspanString=newSpannableString("BIBI");
- StyleSpanspan=newStyleSpan(Typeface.BOLD_ITALIC);
- spanString.setSpan(span,0,2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *删除线
- */
- privatevoidaddStrikeSpan(){
- SpannableStringspanString=newSpannableString("删除线");
- StrikethroughSpanspan=newStrikethroughSpan();
- spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *下划线
- */
- privatevoidaddUnderLineSpan(){
- SpannableStringspanString=newSpannableString("下划线");
- UnderlineSpanspan=newUnderlineSpan();
- spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- /**
- *图片
- */
- privatevoidaddImageSpan(){
- SpannableStringspanString=newSpannableString("");
- Drawabled=getResources().getDrawable(R.drawable.ic_launcher);
- d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
- ImageSpanspan=newImageSpan(d,ImageSpan.ALIGN_BASELINE);
- spanString.setSpan(span,0,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
- }
xml布局文件
[html] view plain copy print ?- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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>
更多相关文章
- 自定义Android(安卓)Progress Bar的颜色
- Android(安卓)设置圆角按下改变颜色按钮
- android中gridView中点击 item为选中状态
- android ListView内数据的动态添加与删除
- Android常用颜色表
- android最近任务列表,删除某个应用操作
- android listview 长按弹出菜单--ContextMenu并进行删除操作
- Android(安卓)购物车(精仿)可删可全选与反选
- android之Notification的使用