[Android开发]自定义View之TextView局部操作View-SpanTextView

一、功能效果图

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KeepStudya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值