TextView做成链接及去掉链接下划线
2017-06-06 00:17
344 查看
前言
前几天做了一个需求,它要求把TextView做成链接,但是要改变它的颜色和这个链接不要下划线。一直陷入之前的TextView做成链接的坑中了,后来还是一个交流群的群友启发了我。不同的需求有不同的做法,如果按着一种想法,最后可能都完不成的。下列是我做的一些Demo,分享给大家。方式一:
这种方式是通过xml文件中设置,配置TextView的autoLink属性,这个属性有web(这个就是我需要的链接形式),email(一个电子邮件地址),none(正常的文本),phone(电话号码),all(根据我们输入的文本自动识别),map(会打开一个地图的应用)。一般会选all,不过我建议去选择对应的属性值。这里我们选的是web,选好之后,你之前给TextView设置的颜色会变,如果想改颜色,可以通过SpannableString,但是这个链接的下划线我没用去掉。后面有去掉链接的下划线办法。
TextView textView = (TextView) findViewById(R.id.tv_web); //这句很重要,必须加 textView.setMovementMethod(LinkMovementMethod.getInstance());
方式二:
这种方法我觉得比较笨,但是效果可以达到,既可以删除下划线,又可以更改链接的颜色,好了,废话不多说,直接上代码:[b]xml代码:[/b]
<TextView android:id="@+id/tv_web" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="https://www.baidu.com/" android:textColor="#0f0" android:textSize="30sp" android:clickable="true" />
[b]MainActivity代码:[/b]
TextView textView = (TextView) findViewById(R.id.tv_web); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,WebActivity.class); startActivity(intent); finish(); } });
第二个xml布局文件中就是一个WebView,填充父窗体
第二个Activity代码:
WebView webView = (WebView) findViewById(R.id.web); WebSettings webSettings = webView.getSettings(); //设置WebView属性,能够执行Javascript脚本 webSettings.setJavaScriptEnabled(true); //设置可以访问文件 webSettings.setAllowFileAccess(true); //设置支持缩放 webSettings.setBuiltInZoomControls(true); //加载需要显示的网页 webView.loadUrl("https://www.baidu.com/");
这种方式就是点击TextView跳转到另一个Activity,让另一个Activity中的WebView加载Url
注意:这种方式需要在清单文件声明一下另一个Activity
方式三:
通过和Html结合textView.setText(Html.fromHtml("<a href='http://www.baidu.com'>百度</a>")); textView.setMovementMethod(LinkMovementMethod.getInstance());
这种方式连接的下滑线也没有去除,颜色设置之后也没有作用,只是单纯的打开链接。
方式四:
这种方式是在方式二的启发下,这种方式完美的解决了下划线和颜色问题,直接上代码:TextView textView = (TextView) findViewById(R.id.tv_web); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = Uri.parse("http://www.baidu.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } });
你使用这种方式,可以随意的设置链接颜色,而且没有下划线。
注意:使用以上的方式不要忘记在清单中添加权限<uses-permission android:name="android.permission.INTERNET"/>
总结:
以上的这几种方式,不一定是最优的,但是解决了我的需求问题,如果哪里有错误的地方还请各位老铁们及时指出。经过一系列的折腾,同样的一种需求,可能有多种解决办法,经常动脑思考,多看看不同的技术文章会让你的脑洞大开。还是那句话,换个角度看问题,世界都变成不一样了呢!(^__^) 嘻嘻……相关文章推荐
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- Android开发技巧——去掉TextView中autolink的下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- Android开发技巧——去掉TextView中autolink的下划线
- android:为TextView加入样式——下划线,颜色,设置链接样式及前背景色
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- 去掉TextView中下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- 为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- android如果给TextView或EditText的email链接加下划线,并在点击在email连接上可以弹框显示
- Android开发技巧——去掉TextView中autolink的下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- TextView单击跳转、字体颜色、去掉下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- Android开发技巧——去掉TextView中autolink的下划线
- TextView使用超链接去掉下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- 设置TextView中超链接字体颜色、下划线
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- 如何将链接的下划线做成虚线?