Android学习笔记__TextView关键字高亮与超链接

基于Python实现基于遥感指数的水体提取 阅读详情

目的:

将TextView里文本中的某些关键字高亮,并且设置超链接,可以进行页面的跳转


实现方法:

使用SpannableString,采用正则表达来搜索文本中的关键字;

设置关键字的超链接通过重写ClickableSpan来实现


		// 加载文章内容高亮多个关键字,只高亮一个关键字去掉循环
		String[] keywords = new String[] { "power", "internet" };
		SpannableString s = new SpannableString(getResources().getString(
				R.string.papercontent));
		for (int i = 0; i < keywords.length; i++) {
			Pattern p = Pattern.compile(keywords[i] + "\\W");
			Matcher m = p.matcher(s);
			while (m.find()) {
				int start = m.start();
				int end = m.end() - 1;
				Intent intent = new Intent(getApplicationContext(),
						KeyWord.class);
				s.setSpan(new IntentSpan(intent), start, end,
						Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
			}
		}
		tvContent.setText(s);
		tvContent.setMovementMethod(LinkMovementMethod.getInstance());


	/**
	 * 重写ClickableSpan中的onClick,实现点击效果
	 * @author zengjiyang
	 */
	public class IntentSpan extends ClickableSpan implements ParcelableSpan {
		private Intent mIntent;

		public IntentSpan(Intent mIntent) {
			super();
			this.mIntent = mIntent;
		}

		@Override
		public int describeContents() {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			// TODO Auto-generated method stub
		}

		@Override
		public int getSpanTypeId() {
			// TODO Auto-generated method stub
			return 100;
		}

		@Override
		public void onClick(View widget) {
			// TODO Auto-generated method stub
			Context context = widget.getContext();
			context.startActivity(mIntent);
		}

		@Override
		public void updateDrawState(TextPaint ds) {
			// TODO Auto-generated method stub
			super.updateDrawState(ds);
			ds.setColor(Color.RED);
			ds.setUnderlineText(false);
			ds.bgColor = Color.TRANSPARENT;
		}

	}

PS:目前就这些,日后再补充


打脸来的太快了,又发现一个Trae的宝藏功能--内置浏览器可以指定机型来显示前端界面 今天给大家分享一个Trae的实用功能,就是SOLO模式下内置浏览器可以指定不同的手机、平板机型来查看前端页面显示效果,我感觉这个功能很棒,忍不住就跟大家分享一下。 阅读详情

相关推荐

【数据攻略】字节面试真题(含答案)+100道面试题库

数据攻略

qq_40002713的博客 4102

Android TextView文字设置超链接、背景高亮、关键字高亮等用法

在使用TextView时,有时候会遇到需要把文本中部分关键字设置成超链接、文本高亮、文本背景高亮、下划线、关键字字体稍大等功能,今天特意看了下Android中TextView这些功能的基本用法,首先我们把设置这些style公用的地方提取出来,定义个方法setTexViewByStyle,如下 private void setTexViewByStyle(TextView view, Parcelab

Do Better Every Day 2309

【Linux系统】Kdenlive软件多机位同音频视频同步化处理

Kdenlive简介 官网链接:https://kdenlive.org/zh/ 命令行安装: apt-get install kdenlive Kdenlive能够进行多轨道视频编辑,可以使用和调整多条音频、视频轨道。每条轨道可以按需进行单独锁定、静音。 Kdenlive多机位同音频视频同步化处理步骤 1. 新建Kdenlive文件 选择<文件>-<新建>,建立新的kdenlive文件,初始设置为<视频轨:2>,<音频轨:2>。 视.

qq_31550269的博客 1884

为TextView添加链接-setMovementMethod -- Android学习笔记6-3

为TextView添加链接-setMovementMethod 一、前言:     本文是由《TextView中的图文共存问题》延伸出来的知识点讲解;原文地址:《TextView中的图文共存问题》 二、为TextView设置链接:   当文字中出现URL、E-mail、电话号码等的时候,我们为TextView设置链接。总结起来,一共有4种方法来为TextView实现

鹏儿飞飞 1万+

ROS激光雷达动态避障算法优化(C++实战)

本文深入探讨了ROS激光雷达动态避障算法的C++实战优化。针对动态环境的核心挑战,文章系统性地介绍了从激光数据预处理(降噪、瘦身)、动态障碍物检测与跟踪,到基于动态窗口法(DWA)的智能决策与调优的全流程。重点分享了如何将障碍物速度预测融入DWA打分函数,以实现更安全、流畅的避障,并提供了工程架构、性能优化及真机调试的实用建议。

weixin_29192141的博客 940

GD32F303片内FLASH实战:从地址映射到数据持久化存储

本文详细介绍了GD32F303片内FLASH的实战应用,从地址映射到数据持久化存储的全过程。通过解析FLASH的基础特性、安全操作区域规划、擦除写入读取的三重奏操作,以及工程化进阶技巧,帮助开发者高效利用片内FLASH进行数据存储。文章还提供了调试技巧和常见问题解决方案,特别适合嵌入式开发者在实际项目中应用。

weixin_26742753的博客 215

TextView设置文本部分可点击时出现文本不显示的问题分析与解决

在利用ClickableSpan(不会的可以看我上一篇博客 “利用Span实现TextView/EditText的灵活表现--改变字体外观,添加点击,超链接”)设置TextView文字部分可点击时,文字刚开始不显示,只有点击了TextView时,文字才会显示。

如琢如磨 2795

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4265

Android TextView 设置超链接、关键字高亮等效果

之前做TextView关键字高亮效果,使用的是Html.fromHtml(String source)方法,然后通过TextView的setText(CharSequence text)方法来显示 后来测试此方法在部分手机上显示有问题,如Nexus4,华为P6等等。于是乎只能继续寻找别的解决办法了,在这里Mark一下。 这里用到了SpannableString类

Ricky 8561

【C#学习记录】如何让界面控件实现自适应布局(Winform)

小伙伴们大家好,我是雷工!在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。

做有价值的事,积累有价值的笔记! 1万+

大数据合规工程师必备的7项核心技能

当我们谈论“大数据”时,往往先想到它的价值——驱动业务增长、优化用户体验、赋能智能决策。大数据的价值越大,其合规风险的“重量”就越重。2023年,全球有超过120个国家出台了数据保护法规,中国《个人信息保护法》《数据安全法》的实施进入深水区,欧盟GDPR的罚款金额屡创新高(最高达全球营收的4%)。企业面临的合规压力,早已从“被动应对监管”升级为“主动构建合规能力”。在这样的背景下,大数据合规工程师。

SuperAGI2025 1259

Android之捕获TextView超链接

公众号:smart_android 作者:耿广龙|loonggg 点击“阅读原文”,可查看更多内容和干货 应该是好久没有写有关技术类的文章了,今天分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了。这个捕获TextView超链接应该算是比较常用吧,如果你会了,就不用看了,如果还不会,可以看一眼,非常简单。 捕获Te

非著名程序员 1900

Qt之QMqtt 发送图片数据

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议;MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛;在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT);其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用;

Ilson_的博客 1437

Android-TextView关键字高亮与超链接

目的: 将TextView里文本中的某些关键字高亮,并且设置超链接,可以进行页面的跳转 实现方法: 使用SpannableString,采用正则表达来搜索文本中的关键字; 设置关键字的超链接通过重写ClickableSpan来实现 1 // 加载文章内容高亮多个关键字,只高亮一个关键字去掉循环 2 String[] k...

diemojia6455的博客 190

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android TextView中设置关键字高亮

记录一下这点                 TextView tv = (TextView) findViewById(R.id.tv); ForegroundColorSpan juSpan = new ForegroundColorSpan(Color.parseColor("#FF4E00")); //设置前景色 BackgroundColorSpan back = new B

iMuqlueen的博客 702

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android修改TextView中部分文字的颜色来实现高亮效果【亲测有效】

概述 我们在做项目的过程中经常需要关键字高亮来提醒用户。 就比如我们在ide中一些系统级的关键字会以不同的颜色来展示一样。 最近我看设计图中有一个很眼熟的效果,由于之前写过但是没有留下任何痕迹,所以这次又写了一个工具类。记录一下,方便以后的使用。 /** * * @param text 文字的总内容 * @param indexStr 关键字的内容 ...

Alien__Chao的博客 3281

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android TextView 实现关键字高亮

本文转自:http://www.blogjava.net/Green-nut/articles/348167.html 需求:搜索TextView里面的关键字,并高亮显示。 实现方法:   利用SpannableString 的特性,搜索TextView的要显示的字符串,将相应的关键字标记为高亮 设计到的api 1. SpannableString 这是一个很奇妙的东西...

dibe49481448的博客 126

Android TextView中部分文字高亮,且可响应点击事件

如果只是单纯的想让TextView中部分文字高亮显示,下面两个方法就行了: /**      * 关键字高亮变色      *       * @param color      *            变化的色值      * @param text      *            文字      * @param keyword      *            

LWK 的专栏 3232

android中搜索关键字高亮

import android.graphics.Color; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.style.Fo

fydsw1314的专栏 2239

Android TextView指定关键字高亮显示

项目中有这个需求,网上搜了一把,方法挺多的,这里选择一个简单的,已验证可用的方法,记录下,方便以后查阅。 TextView tv = (TextView) findViewById(R.id.hello); SpannableString s = new SpannableString(getResources().getString(R.string.linkify)); Pattern p

wblyuyang的专栏 5033

android 字体高亮,Android中TextView的某一关键字高亮显示

刚好碰到一个要在ListView的Item中显示搜索的关键字高亮显示。已经解决,现在讲代码贴出来。调用的时候传入2个参数即可,1.要显示的文本。2.需要高亮的关键字。import java.util.regex.Matcher;import java.util.regex.Pattern;import android.graphics.Color;import android.text.Spann...

weixin_36399948的博客 1068

可以高亮显示关键字并设置不同字体大小的自定义TextView

在写业务的时候,经常会碰到一些这样的需求,一个TextView中需要你高亮显示部分重要的关键字,并且需要字体变的更大些,类似于下图。 像这种需求,如果不用一个TextView来实现,来就得多个TextView控件,这样对于性能是有些伤害的,所以才想去写一个满足这种需求的TextView控件。

人生若只如初见 5723

探究 Android 14 新功能之 TextView 搜索高亮和焦点移动~

之前写的文章《Android 14 新功能之 HighLights》里,讲到 Android 14 里推出的HighLights新功能可以快速实现 TextView 文字的高亮效果,并支持动态更新。使用等针对 TextView 的搜索结果进行高亮展示使用针对 TextView搜索焦点高亮和移动上个版本 13 时 Android 针对 TextView 提供了换行策略的新功能,到这次 14 一次性推出了文本高亮HighLights、搜索高亮以及搜索焦点移动3个新功能。

allisonchen的专栏 1326

android 字体高亮,Android TextView中部分文字高亮显示_Android_脚本之家

Android TextView中部分文字高亮显示/*** 关键字高亮显示** @param context 上下文* @param text 需要显示的文字* @param target 需要高亮的关键字* @param color 高亮颜色* @param start 头部增加高亮文字个数* @param end 尾部增加高亮文字个数* @return 处理完后的结果*/publi...

weixin_29023079的博客 589

Android中TextView的文本内容中指定关键字高亮显示

让TextView的文本中指定关键字高亮显示的工具类public class HighLightKeyWordUtil { /** * @param color 关键字颜色 * @param text 文本 * @param keyword 关键字 * @return */ public static Spannabl

millerkevin 1424
下一篇: Android学习笔记__实现布局自动滚动
星河的巡礼
博客等级 码龄15年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值