android控件使用-----SpannableString
2017-02-24 01:10
281 查看
这里我没事写了下效果方便自己记住,也就写出来(( ⊙ o ⊙ )!)
spannableString.setSpan(colorSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
首先说下这个方法的参数
第一参数是效果
第二的参数起始位置
第三个参数终点位置
第四个参数如下
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
用的时候再看吧
都是用法我写在一起了
给出代码清楚明白
xml文件都给你们直接看效果(良心吧)
在最后的点击事件中
希望这个能有所帮助
spannableString.setSpan(colorSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
首先说下这个方法的参数
第一参数是效果
第二的参数起始位置
第三个参数终点位置
第四个参数如下
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
用的时候再看吧
都是用法我写在一起了
给出代码清楚明白
package com.example.admin.spannablestring; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.provider.Browser; import android.support.v7.app.AppCompatActivity; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextPaint; import android.text.method.LinkMovementMethod; import android.text.style.BackgroundColorSpan; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.text.style.ImageSpan; import android.text.style.RelativeSizeSpan; import android.text.style.StrikethroughSpan; import android.text.style.StyleSpan; import android.text.style.SubscriptSpan; import android.text.style.SuperscriptSpan; import android.text.style.UnderlineSpan; import android.util.Log; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView textView1; private TextView textView2; private TextView textView3; private TextView textView4; private TextView textView5; private TextView textView6; private TextView textView7; private TextView textView8; private TextView textView9; private TextView textView10; private TextView textView11; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView1= (TextView) findViewById(R.id.text1); textView2= (TextView) findViewById(R.id.text2); textView3= (TextView) findViewById(R.id.text3); textView4= (TextView) findViewById(R.id.text4); textView5= (TextView) findViewById(R.id.text5); textView6= (TextView) findViewById(R.id.text6); textView7= (TextView) findViewById(R.id.text7); textView8= (TextView) findViewById(R.id.text8); textView9= (TextView) findViewById(R.id.text9); textView10= (TextView) findViewById(R.id.text10); textView11= (TextView) findViewById(R.id.text11); set1(textView1); set2(textView2); set3(textView3); set4(textView4); set5(textView5); set6(textView6); set7(textView7); set8(textView8); set9(textView9); set10(textView10); set11(textView11); } public void set1(TextView textView){ SpannableString spannableString = new SpannableString("设置文字的前景色为淡蓝色"); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString.setSpan(colorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set2(TextView textView){ SpannableString spannableString = new SpannableString("设置文字的背景色为淡绿色"); BackgroundColorSpan colorSpan = new BackgroundColorSpan(Color.parseColor("#AC00FF30")); spannableString.setSpan(colorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set3(TextView textView){ SpannableString spannableString = new SpannableString("万丈高楼平地起"); RelativeSizeSpan sizeSpan01 = new RelativeSizeSpan(1.2f); RelativeSizeSpan sizeSpan02 = new RelativeSizeSpan(1.4f); RelativeSizeSpan sizeSpan03 = new RelativeSizeSpan(1.6f); RelativeSizeSpan sizeSpan04 = new RelativeSizeSpan(1.8f); RelativeSizeSpan sizeSpan05 = new RelativeSizeSpan(1.6f); RelativeSizeSpan sizeSpan06 = new RelativeSizeSpan(1.4f); RelativeSizeSpan sizeSpan07 = new RelativeSizeSpan(1.2f); spannableString.setSpan(sizeSpan01, 0, 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan02, 1, 2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan03, 2, 3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan04, 3, 4, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan05, 4, 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan06, 5, 6, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan07, 6, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set4(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置删除线"); StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); spannableString.setSpan(strikethroughSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set5(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置下划线"); UnderlineSpan underlineSpan = new UnderlineSpan(); spannableString.setSpan(underlineSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set6(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置上标"); SuperscriptSpan superscriptSpan = new SuperscriptSpan(); spannableString.setSpan(superscriptSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set7(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置下标"); SubscriptSpan subscriptSpan = new SubscriptSpan(); spannableString.setSpan(subscriptSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set8(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置粗体、斜体风格"); StyleSpan styleSpan_B = new StyleSpan(Typeface.BOLD); StyleSpan styleSpan_I = new StyleSpan(Typeface.ITALIC); spannableString.setSpan(styleSpan_B, 5, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(styleSpan_I, 8, 10, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setHighlightColor(Color.parseColor("#36969696")); textView.setText(spannableString); } public void set9(TextView textView){ SpannableString spannableString = new SpannableString("在文本中添加表情(表情)"); Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher); drawable.setBounds(0, 0, 42, 42); ImageSpan imageSpan = new ImageSpan(drawable); spannableString.setSpan(imageSpan, 6, 8, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); } public void set10(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置点击事件"); MyClickableSpan clickableSpan = new MyClickableSpan("http://www.jianshu.com/users/dbae9ac95c78"); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString.setSpan(colorSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(clickableSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //设置该句使文本的超连接起作用 textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setHighlightColor(Color.parseColor("#0099EE")); textView.setText(spannableString); } public void set11(TextView textView){ SpannableString spannableString = new SpannableString("为文字设置点击事件"); MyClickableSpan clickableSpan = new MyClickableSpan("http://blog.csdn.net/li15225271052"); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString.setSpan(colorSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(clickableSpan, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //设置该句使文本的超连接起作用 textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setHighlightColor(Color.parseColor("#0099EE")); SpannableString spannableString1 = new SpannableString("为文字设置url点击事件"); MyClickableSpan1 clickableSpan1 = new MyClickableSpan1("http://blog.csdn.net/li15225271052"); ForegroundColorSpan colorSpan1= new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString1.setSpan(colorSpan1, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString1.setSpan(clickableSpan1, 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //设置该句使文本的超连接起作用 textView.setMovementMethod(LinkMovementMethod.getInstance()); // 点击后的背景色 textView.setHighlightColor(Color.parseColor("#F33011")); SpannableStringBuilder spannableStringBuilder=new SpannableStringBuilder(spannableString); spannableStringBuilder.append(spannableString1); textView.setText(spannableStringBuilder); } class MyClickableSpan extends ClickableSpan { private String content; public MyClickableSpan(String content) { this.content = content; } @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false); } @Override public void onClick(View widget) { Handler handler = new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { Intent intent = new Intent(MainActivity.this, OtherActivity.class); Bundle bundle = new Bundle(); bundle.putString("content", content); intent.putExtra("bundle", bundle); startActivity(intent); }}, 2000); } } class MyClickableSpan1 extends ClickableSpan { private String content; public MyClickableSpan1(String content) { this.content = content; } @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false); } @Override public void onClick(View widget) { Uri uri = Uri.parse(content); Context context = widget.getContext(); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); try { context.startActivity(intent); } catch (ActivityNotFoundException e) { Log.w("URLSpan", "Actvity was not found for intent, " + intent.toString()); } } } }
xml文件都给你们直接看效果(良心吧)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.admin.spannablestring.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text1" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text2" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text3" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text4" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text5" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text6" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text7" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text8" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text9" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text10" android:textSize="18dp" android:text="Hello World!" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text11" android:textSize="18dp" android:text="Hello World!" /> </LinearLayout>
在最后的点击事件中
//设置该句使文本的超连接起作用 textView.setMovementMethod(LinkMovementMethod.getInstance()); // 点击后的背景色 textView.setHighlightColor(Color.parseColor("#F33011"));
希望这个能有所帮助
相关文章推荐
- Day3.2--Android简单UI控件之TextView的高级使用--SpannableString的使用
- android控件动态使用
- 如何新建和使用Android控件
- Android一些控件的使用
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android常用控件的基本使用说明
- android学习小结5-各种控件使用方式DEMO
- Study on Android【四】--显示控件使用
- Android 菜单(Menu)控件的使用
- android学习小结3-各种控件使用方式DEMO
- Android之Gallery控件使用
- android中如何开发用户控件(使用已有控件组合而成的控件,非用户视图)
- Android控件动态使用
- Android 菜单(Menu)控件的使用
- Android 各种控件使用方法
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- Android 控件使用之SlidingDrawer
- 网格控件GridView在Android中的使用
- Android常用控件-DatePicker以及对话框的两种使用方法
- Android Gallery控件使用方法详解