一、功能效果图
Android TextView的局部操作Span封装View,支持缩略显示、局部点击、局部格式设置、图片插入替换等等
二、简单使用
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.setOnLinkClickListener(new SpanTextView.onLinkClickListener() {
@Override
public void onLinkClick(View view, String text, 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);
又例如其他操作 背景、颜色、下划线等等:
//设置文本大小
tvTest.setSpanTextSize("大小",30);
//设置文本背景
tvTest.setSpanTextBack("普通背景", Color.BLUE);
//设置文本圆角背景
tvTest.setSpanTextBack("圆角背景", Color.GREEN,10);
//设置文本颜色
tvTest.setSpanTextColor("颜色",Color.RED);
//设置文本下划线
tvTest.setUnderLine("下划线",true);
又例如设置省略文字:
//设置省略文字,只显示100个
tvTestTwo.setOmit(100);
还有其他的功能,具体请查看源码方法
三、思路
思路比较简单,就是把所有的span操作都放在了父View,向外公开一个个简单的方法去使用。
图片支持插入、替换、居中、可设置宽高。
封装了一些常用的,如果你需要的功能封装里面没有,你可以使用下面的代码进行设置Span
//设置其他的Span
//自定义设置Span
tvTest.setSpann(tvTest.createSpan(tvTest.getText(), new TypefaceSpan("sans-serif"), 1, 5));
四、代码
项目开源地址:
https://github.com/tpnet/SpanTextView
SpanTextView源码:
https://github.com/tpnet/SpanTextView/blob/master/app/src/main/java/com/tpnet/spantextview/SpanTextView.java