问题:使用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以实现新闻浏览的效果;也可加入更多的效果!(下期试试改一下)

更多相关文章

  1. Android中实现跑马灯效果
  2. android绘图Paint.setXfermode()和Canvas.saveLayer()方法的作用
  3. AndroidUI设计之 布局管理器 - 详细解析布局实现
  4. Android利用Fiddler进行网络数据抓包
  5. android平台下基于OpenSL ES实现音频录制功能
  6. Android动态加载jar、apk的实现
  7. Android之个性化ListView实现
  8. Android实现图表绘制和展示
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. android:exported 属性详解
  2. Android(安卓)中自定义控件和属性(attr.x
  3. android中Invalidate和postInvalidate的
  4. Androidx 迁移总结
  5. Android(安卓)自定义View及其在布局文件
  6. Android图文混排实现方式详解
  7. Android高性能编程(1)--基础篇
  8. android ndk linux环境搭建
  9. 【小萌伴Android】相关文章目录
  10. Handler问题总结