Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

SpanTextView

最新效果图

TextView需要局部操作:点击某些局部文字的事件、颜色、大小、下划线、指定位置插入图片、添加图片、缩略显示、文字跑马灯等等,如果没经过封装,你需要在activty上写一堆的view操作代码。

简单封装一下之后,我在TextView要设置第3-5的字母点击事件 和 "链接1"字符点击事件,代码只需要如下

 //设置点击事件
 tvTest.setSpanLink("链接1",SIGN_ONE,false,Color.GREEN);
 tvTest.setSpanLink("链接2",SIGN_TWO,false);
 tvTest.setSpanLink("链接3",SIGN_THREE);
 
 //点击事件回调监听
 tvTest.setOnTextLinkClickListener(new SpanTextView.onTextLinkClickListener() {
 @Override
 public void onTextLinkClick(View view, String text,int position , String sign) {
 String toast = "";
 switch (sign){
 case SIGN_ONE:
 toast = "链接1";
 break;
 case SIGN_TWO:
 toast = "链接2";
 break;
 case SIGN_THREE:
 toast = "链接3";
 break;
 }
 Toast.makeText(MainActivity.this,"点击了"+toast,Toast.LENGTH_SHORT).show();
 Log.e(TAG, "点击了"+toast);
 }
 });

又例如替换图片,插入图片,代码只需要如下:

 //添加图片到最前面,文字的高度
 tvTest.addImageToFirst(R.drawable.one, SpanTextView.TEXT_SIZE);
 //添加图片到中间(中间添加的后面)
 tvTest.setImage(R.drawable.two, "中间添加", SpanTextView.AFTER_IMAGE);
 //添加图片到最后面
 tvTest.addImageToLast(R.drawable.four);
 //替换文本为图片
 //tvTest.setImage(R.drawable.three,"图片标识", SpanTextView.REPLACE_IMAGE);
 tvTest.replaceTextToImage("图片标识",R.drawable.three);

如果你添加的图片需要点击事件,ok,满足你的,只需要在添加图片方法最后一个参数加上一个标识字符串常量即可,然后利用一个事件去监听,例如

 tvTest.addImageToFirst(R.drawable.one, SpanTextView.TEXT_SIZE,SIGN_PIC_ONE);
 //添加图片到中间位置 ("中间添加"的后面)
 tvTest.setImage(R.drawable.two, "中间添加", SpanTextView.AFTER_IMAGE,SIGN_PIC_TWO);
 //添加图片到最后面
 tvTest.addImageToLast(R.drawable.four,SIGN_PIC_THREE);
 
    // 图片点击回调事件
    tvTest.setOnImageLinkClickListener(new SpanTextView.onImageLinkClickListener() {
 @Override
 public void onImageLinkClick(View view, int position, String sign) {
 String toast = "";
 switch (sign){
 case SIGN_PIC_ONE:
 toast = "图片链接1-" + position;
 break;
 case SIGN_PIC_TWO:
 toast = "图片链接2-" + position;
 break;
 case SIGN_PIC_THREE:
 toast = "图片链接3-" + position;
 //替换最后图片为图片1,
 tvTest.replaceImageSpan(sign, getResources().getDrawable(R.drawable.one), SpanTextView.TEXT_SIZE, new int[2]);
 break;
 case SIGN_PIC_FOUR:
 toast = "图片链接4-" + position;
 break;
 }
 Toast.makeText(MainActivity.this,"点击了"+toast,Toast.LENGTH_SHORT).show();
 Log.e(TAG, "点击了"+toast);
 }
 });

又例如其他操作 背景、颜色、下划线等等:

 //设置文本大小
 tvTest.setSpanTextSize("大小",30);
 //设置文本背景
 tvTest.setSpanTextBack("普通背景", Color.BLUE);
 //设置文本圆角背景
 tvTest.setSpanTextBack("圆角背景", Color.GREEN,10);
 //设置文本颜色
 tvTest.setSpanTextColor("颜色",Color.RED);
 //设置文本下划线
 tvTest.setUnderLine("下划线",true);
 
 

设置省略文字:

 //文本开启跑马灯效果
 tvTextThree.setMarquee(true);
 //设置跑马灯的次数
 //tvTextThree.setMarqueeRepeatLimit(10);

设置文本跑马灯效果:

 //文本开启跑马灯效果
 tvTextThree.setMarquee(true);

清除效果:

  //清除单个效果,参数在设置的时候进行返回
  tvTest.clearSpan(mBackSpan);
 
  //清除全部效果
 tvTest.clearAllSpan();

还有其他的功能,具体请查看源码方法

About

Android TextView的局部操作Span封装View,支持缩略显示、局部点击事件、局部格式设置、图片插入替换、跑马灯效果等等

Resources

Stars

32 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /