`

Android 自定义TextView可点击区域跟点击处理

 
阅读更多

在TextView中不仅可以设置链接类型,而且可以自定义链接类型和相关操作。原理是自定义ClickableSpan来绘制可点击文本的效果和点击后的处理,然后设置TextView的ClickableSpan为自定义的ClickableSpan即可。

自定义ClickableSpan:

	private class CustomizedClickableSpan extends ClickableSpan {
		
	    String text;

	    public CustomizedClickableSpan(String text) {
	        super();
	        this.text = text;
	    }

	    @Override
	    public void updateDrawState(TextPaint ds) {
//	        ds.setColor(ds.linkColor);
	    	ds.setColor(Color.GREEN);
//	        ds.setUnderlineText(false);
	    	ds.setAlpha(50);
	    }

	    @Override
	    public void onClick(View widget) {
	        Toast.makeText(ClipboardTestActivity.this, text, Toast.LENGTH_SHORT).show();
	    }
	}

测试代码:

        TextView textView03 = (TextView) findViewById(R.id.textView3);
        
        String str = "AAAAAAAAAAAAAAA";
        SpannableString spStr = new SpannableString(str);
        ClickableSpan clickSpan = new CustomizedClickableSpan(str);
        spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        textView03.setText("CCCC");
        textView03.append(spStr);
        textView03.append("BBBB");
        textView03.setMovementMethod(LinkMovementMethod.getInstance());


 http://www.myexception.cn/android/1172814.html
 

  • 大小: 5.3 KB
分享到:
评论

相关推荐

    Better-Link-Movement-Method:尝试改善在TextView中检测,突出显示和处理可点击链接的方式

    当使用android:autoLink或Linkify.addLinks将链接添加到TextView时,Android使用称为LinkMovementMethod的类来突出显示焦点时的链接,并在单击它们时分派Intent。 BetterLinkMovementMethod改善了...

    Android自定义照相机倒计时拍照

    自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: 两个TextView是用来显示提示信息和倒计时的秒数的 相关教程:Android开发从相机或相册获取图片裁剪 Android启动相机拍照并返回图片 <...

    Android自定义组件-MultiTextView(更新)

    可以在一个固定宽度的区域显示多个不定长度的字符串,类似于淘宝上商品详情的尺码和颜色分类那种。

    Android自定义View实现竖直跑马灯效果案例解析

    大家知道,横向的跑马灯android自带的TextView就可以实现,详情请百度【Android跑马灯效果】。但是竖直的跑马灯效果原生Android是不支持的。网上也有很多网友实现了自定义的效果,但是我一贯是不喜欢看别人的代码,...

    android布局控件总结

    FrameLayout 帧布局、框架布局 创建一个空白区域, 一个区域成为一帧 TableLayout 表格布局 采用 行, 列 形式管理子组件,添加TableRow 和 组件 就可以控制表格的行数和列数 GridLayout 网格布局 设置行列来装填控件 ...

    应用启动页自定义跳转计时器View Demo

    (自定义TextView,用于欢迎页跳过图标) */ public class CircleTextProgressbar extends android.support.v7.widget.AppCompatTextView { /** * 外部轮廓的颜色。 */ private int outLineColor = Color.BLACK;...

    Curtain:一个Android 高亮View蒙层库

    高亮区域支持自定义大小、操作灵活 顺应变化,基于Android X 配置简单,导入方便 Installation: dependencies { implementation 'com.qw:curtain:0.0.9' } Usage: 仅仅是高亮某个View private void showCurtain()...

    AndroidLintPlaceholderCheck:[已弃用] 自定义 Android lint 检查 XML 布局文件中的占位符

    该项目对 XML 布局文件中的占位符进行自定义 lint 检查。 什么是占位符? 占位符是在设计时使用但在运行时被特定值替换的文本。 假设您有一个 TextView,例如显示订单号。 订单号在设计时不存在,但会在运行时显示...

    时间段的选择-MyDateDemo.zip

    android实现日历模式下的时间区域的选择,选择两个时间取中间时间区间,使用viewpager与自定义的linearLayout和TextView实现日历下的选择时间段

    Android高仿京东垂直循环滚动新闻栏

    实现思路其实很简单,就是一个自定义的LinearLayout,并且textView能够循环垂直滚动,而且条目可以点击,显示区域最多显示2个条目,并且还有交替的属性垂直移动的动画效果,通过线程来控制滚动的实现。 不多说看...

Global site tag (gtag.js) - Google Analytics