2019独角兽企业重金招聘Python工程师标准>>>

示例程序

1.换行显示长文本

 <TextViewandroid:id="@+id/textview1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/long_string" />

显示效果:如下图,长文本换行显示。

2.单行显示长文本

<TextViewandroid:id="@+id/textview1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/long_string" android:singleLine="true"/>

控件属性 android:singleLine="true" 。

显示效果:如下图,长文本单行显示,超出部分显示为省略号...

3.单行“跑马灯”(滚动)显示

    <TextViewandroid:id="@+id/textview1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/long_string" android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"/>

控件属性:android:ellipsize="marquee" ( 需获得当前焦点);

显示效果: 如图,长文本能够单行滚动显示;

4.多行滚动显示

由上可知,你可能回想:是不是直接复制一个控件就可实现多行滚动了呢?答案是否定的,因为android:ellipsize="marquee" 需要获得当前焦点,而默认情况下,多个控件中只有第一个控件能获得焦点,所以直接复制多个控件的效果是:只有第一行控件具有滚动效果。

这是需要新建一个继承父类 TextView 的子类,并重构 isFocused() 方法,具体步骤如下:

1.新建类继承 TextView

public class MainActivity extends Activity

2.添加构造函数:右键 — Sourse — Generate Constructors from Superclass

3.新建子类重写父类 TextView  方法 isFocused(),返回值改为 return true;

 @Overridepublic boolean isFocused() {// TODO Auto-generated method stub//return super.isFocused();return true;}

4.改用自定义控件

 <com.jincheung.marquee.MyMarqueeandroid:id="@+id/textview1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/long_string" android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"/><com.jincheung.marquee.MyMarqueeandroid:id="@+id/textview2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="49dp"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:singleLine="true"android:text="@string/long_string" />

4.现在就可以实现多行滚动了

转载于:https://my.oschina.net/zhangyujian/blog/787526

Android攻城狮—TextView实现跑马灯相关推荐

  1. 写给即将/正在找工作的Android攻城狮

    写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...

  2. Android攻城狮fragment

    1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...

  3. Android攻城狮ScrollView

    ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...

  4. Android攻城狮Handler简介

    Handler是什么? Handler是Android提供的一套用来更新UI的机制,也是一套消息处理机制,可以通过它发送消息,也可以通过它处理消息. 所有Activity生命周期回调的方法(例如onC ...

  5. Android攻城狮重新认识Toast

    什么是Toast 1. Toast是一种提供给用户简洁提示信息的视图. 2. 该视图以悬浮于应用程序之上的形式呈现给用户.Toast提示界面不获取焦点,所以不影响用户的操作.Toast提示就是在不影响 ...

  6. Android攻城狮 progressBarprogressDialog

    ProgressBar的关键属性 android:max="100" --最大显示进度 android:progress="50" --第一显示进度 andro ...

  7. Android攻城狮ListView

    适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...

  8. Android攻城狮Gallery和ImageSwitcher制作图片浏览器

    使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...

  9. Android攻城狮GestureDetector和GestureOverlayView

    手势识别 可以通过以下两种方式实现: 1. 使用GestureDetector 2. 使用GestureOverlayView(属于线程的控件)手势交互过程(原理): 1. 触屏一刹那,触发 Moti ...

  10. Android攻城狮ViewFlipper

    使用ViewFlipper实现屏幕切换动画效果. ViewFlipper和ViewPager一样,都是Android自带的一个多页面管理控件,不同的是ViewPager是手动切换页面,而ViewFli ...

最新文章

  1. java 列表框简单案例
  2. 【网络安全】如何使用QueenSono从ICMP提取数据
  3. 微信小程序中显示空格
  4. 【LeetCode】5.最长回文子串
  5. gpio 树莓派3a+_树莓派4上市:性能飙升起售价依然是35美元
  6. Codeforces Round #708 (Div. 2)
  7. java 获取td_[Java教程]jQuery获取table表中的td标签
  8. 7 orm 有批量更新_2020.12.24更新公告
  9. 修改华为服务器管理口地址,修改华为服务器管理口地址
  10. mysql注入 xfkxfk_WSS最新版多处SQL注入直接获取数据三(官方demo演示及快速定位漏洞技巧)...
  11. CSRF 攻击的应对之道
  12. 「解读苏宁」30年门店数字化发展心法与实践分享
  13. excel怎么自动填充连续数字
  14. 计算上周一开始时间戳
  15. 主题黑板.html,黑板报主题
  16. 回归预测 | MATLAB实现贝叶斯优化门控循环单元(BO-GRU)多输入单输出
  17. Max OS 打开 JD-GUI 报错
  18. 金山办公CEO章庆元:数字化、云化、订阅化趋势下,组织数字办公走向纵深
  19. 获取rowid的两种方法。
  20. CSDN博文创作编辑器新增投票功能啦

热门文章

  1. 电梯控制项目设计报告-第十周
  2. pthread库实现一个简单的任务池
  3. 在Javascript中实现类似C#中string.Format的功能
  4. mac 关闭 mysqld 进程(亲测可用)
  5. Mac电脑:Flutter开发环境配置小白教程
  6. 基于gdal的格网插值
  7. python学习之路第四周汇总
  8. 洛谷P1978 集合 [2017年6月计划 数论08]
  9. TCP和UDP Socket
  10. C#窗体无法接受Keydown事件