Android(安卓)Studio的TextView实现滚动显示文字
16lz
2022-05-05
问题:使用TextView实现文字从右到左滚动显示,属性设置可在布局文件和代码文件中设置,经过多次试验,在布局文件中设置其属性无法实现滚动效果。
Android版本:9
在手机上调试需打开USB调试(仅安卓机)
一、使用TextView实现文字从右到左滚动显示
TextView实现滚动显示的属性:
android:marqueeRepeatLimit="marquee_forever"
在代码中设置的属性(因为在布局文件中设置无效)
textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); textView.setSingleLine(true); textView.setSelected(true); textView.setFocusable(true); textView.setFocusableInTouchMode(true);
通过以上的属性设置,即可实现TextView文字滚动!
二、在此基础上实现文字滚动过程中,点击关键词实现跳转网页。
这个可以在显示的数据中设置
例如:
显示的文本数据为:
安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
在文本的“智能手机”前后加上链接如下:
安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如
注意:链接需使用单引号
三、完整代码如下:
布局:
package com.example.textview_paomadeng;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.text.Html;import android.text.TextUtils;import android.text.method.LinkMovementMethod;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)this.findViewById(R.id.New); String html = "据中国日报,当地时间6月23日,加拿大不列颠哥伦比亚省高等法院和孟晚舟引渡案的控、辩双方达成共识,对引渡案的全部日程进行确认,同意于8月17日恢复引渡听证会,对加拿大和美国当局提供的信息的证据可采纳性进行讨论;而关于美加是否滥用司法程序的辩论将于2021年2月16日开始。"; CharSequence charSequence = Html.fromHtml(html); textView.setText(charSequence); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); textView.setSingleLine(true); textView.setSelected(true); textView.setFocusable(true); textView.setFocusableInTouchMode(true); }}
Java:
public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)this.findViewById(R.id.New); String html = "据中国日报,当地时间6月23日,加拿大不列颠哥伦比亚省高等法院和孟晚舟引渡案的控、辩双方达成共识,对引渡案的全部日程进行确认,同意于8月17日恢复引渡听证会,对加拿大和美国当局提供的信息的证据可采纳性进行讨论;而关于美加是否滥用司法程序的辩论将于2021年2月16日开始。"; CharSequence charSequence = Html.fromHtml(html); textView.setText(charSequence); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); textView.setSingleLine(true); textView.setSelected(true); textView.setFocusable(true); textView.setFocusableInTouchMode(true); }}
四、运行结果如下:
运行后的效果:
点击后的效果:
在最后可加入更多的TextView以实现新闻浏览的效果;也可加入更多的效果!(下期试试改一下)
更多相关文章
- Android中实现跑马灯效果
- android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
- AndroidUI设计之 布局管理器 - 详细解析布局实现
- Android利用Fiddler进行网络数据抓包
- android平台下基于OpenSL ES实现音频录制功能
- Android动态加载jar、apk的实现
- Android之个性化ListView实现
- Android实现图表绘制和展示
- 浅谈Java中Collections.sort对List排序的两种方法