android中实现跑马灯有三种方式

第一种,比较简单,直接用textView来实现。

android:singleLine="true"

android:ellipsize="marquee"

android:text="大王让我来巡山,寻了南山寻北山"

android:background="@color/colorAccent"

android:textSize="30sp"

android:textColor="#ffffff"

android:padding="10dp"

android:focusableInTouchMode="true"

android:marqueeRepeatLimit="marquee_forever"

android:focusable="true"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

直接在布局文件中使用这个textview即可,其中的关键代码是:

android:singleLine="true" //设置文字只显示一行

android:ellipsize="marquee"// 设置无法显示的文字的显示方式为跑马灯

android:marqueeRepeatLimit="marquee_forever"//设置跑马灯的重复方式

android:text="大王让我来巡山,寻了南山寻北山"//注意文字一定要长,否则无效果

android:focusableInTouchMode="true" //通过触摸方式获取焦点

android:focusable="true"//获取焦点

缺点:如果在同一布局中有EditText、ScrollView等会自动获取焦点的View的话,那么我们在布局文件中声明的这个textView就无法获取焦点,也就意味着跑马灯效果会失效。

优点:代码量少,只需要声明必要的属性即可完成跑马灯效果。

第二种,继承TextView

public class MyTextView extends TextView {

public MyTextView(Context context) {

super(context);

}

public MyTextView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

//重写这个方法,强制返回true

@Override

public boolean isFocused() {

return true;

}

}

在布局中使用

android:singleLine="true"

android:ellipsize="marquee"

android:text="大王让我来巡山,寻了南山寻北山"

android:background="@color/colorAccent"

android:textSize="30sp"

android:textColor="#ffffff"

android:padding="10dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

核心代码:

android:singleLine="true"

android:ellipsize="marquee"

android:text="大王让我来巡山,寻了南山寻北山"

可以看到,少了焦点处理的那些内容。

优点:即使在同一布局中有EditText、ScrollView等会自动获取焦点的View的话,我们的自定义textView依然可以获得焦点,跑马灯依然有效。

缺点:代码量大,需要自定义view,并且需要重写isFocused()方法

这两种方式,我们均无法控制文字的滚动速度和方向

第三种方式,自定义View

这个其实属于自定义View的范畴,不再赘述。

手动微笑

android跑马灯代码,Android中实现跑马灯效果相关推荐

  1. android 方形按钮代码,Android中实现图文并茂的按钮实例代码

    效果图如下所示: 代码: android:orientation="horizontal" android:layout_width="match_parent" ...

  2. android小球移动代码,Android中如何绘制一个跟随手指移动的小球

    Android中如何绘制一个跟随手指移动的小球 发布时间:2020-11-07 16:22:43 来源:亿速云 阅读:82 作者:Leah 本篇文章为大家展示了Android中如何绘制一个跟随手指移动 ...

  3. android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果

    本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在on ...

  4. android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码

    [实例简介] android 收音机 FM 驱动 hal层 框架层以及应用层代码 方法一 不需要framework部分 1.fm放到 \hardware\rk2x 2.FmRadio 放到 packa ...

  5. Android钢琴滑动代码,android 钢琴界面实现

    近在做一个钢琴的东西,关于这个界面如何设计画了很长时间,主要是考虑到针对不同的分辨率,如果只针对一种分辨率的话用绝对布局可以实现,实现的基本思想是每个白色的键的位置是可以计算出来的,屏幕的宽度可以获得 ...

  6. android确认密码代码,Android自定义View实现验证码or密码输入框

    前言 最近项目中有支付功能,用户输入密码时要类似微信支付密码输入框的样式,本想直接copy网上的,但设计姐姐总是对样式挑三拣四,抽空自己自定义了一个,无奈之下抽空自定义了个,并把它贴到GitHub上供 ...

  7. android相对布局代码,Android基础_3 Activity相对布局(示例代码)

    相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的.相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一 ...

  8. android确认密码代码,Android手机卫士之确认密码对话框

    本文接着实现"确认密码"功能,也即是用户以前设置过密码,现在只需要输入确认密码 布局文件和<Android 手机卫士--设置密码对话框>中的布局基本类似,所有copy一 ...

  9. android物理健代码,Android 物理按键整理及实例代码

    先给大家看一段代码,然后说明. import android.app.Activity; import android.os.Bundle; import android.util.Log; impo ...

  10. android 进度条 代码,Android 进度条使用详解及示例代码

    在这里,总结一下loading进度条的使用简单总结一下. 一.说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验. 先 ...

最新文章

  1. 从理论支撑到具体应用,万字长文详述 CV 中 Transformer 的广阔天地
  2. 特征对齐的旋转目标检测:Align Deep Features for Oriented Object Detection
  3. JSON合并补丁:JSON-P 1.1概述系列
  4. 后台运行linux程序,后台运行Linux程序的方法
  5. SQL Server 2012安装配置(Part2 )
  6. python界面编程实例_python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例...
  7. 《人工智能:计算Agent基础》——3.3 图搜索
  8. mysql插入用户 5.7_mysql 5.7 用户添加与权限管理
  9. linux 命令缺失安装,Redhat7没有安装ifconfig命令的解决方法
  10. 使用npm安装vue项目+使用
  11. 听哥一句劝,CSDN史上最强插件你把握不住(文末可抽取机械键盘,CSDN年卡会员)
  12. 三级数据库知识点总结
  13. maven module 路径_解决maven项目中-Dmaven.multiModuleProjectDirectory报错问题
  14. 程序员和码农有什么不同?从这三个单词就看得出来
  15. UG二次开发自定义刀轨
  16. 《朱生豪情书全集》【手稿珍藏本】 梦中不识路,何以慰相思
  17. Ubuntu16.04 安装Pangolin出现错误,已解决(亲测成功)
  18. Clustering coefficient的计算
  19. ubuntu 压缩率最高的软件_可能是目前最好用的免费压缩软件
  20. 【菜鸟算题】兰顿蚂蚁

热门文章

  1. 100个常用的 JS 代码
  2. 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【姜萌篇】
  3. Ubuntu中安装gcc
  4. 为什么在微信的阴影下QQ依然是中国第二大App?
  5. 单片机C 语言程序设计教程,基于51单片机的C语言程序设计教程.doc
  6. 计算机组成与体系结构第一次试验:运算器实验
  7. Java教学系列视频教程孔浩
  8. 生成CFree 5.0 注册码
  9. 题目:身份证录入系统 一、语言和环境 a)实现语言Java, 使用Android开发环境实现《身份证录入系统》APP。
  10. Lidar Studio点云处理与分析软件V1.1