API Demos 2.3 学习笔记 (6) Text>Marquee

更多精彩内容,请点击阅读:《API Demos 2.3 学习笔记》


在TextView及其子类控件中,当文本内容太长,超过控件长度时,默认情况下,无法完全显示文本内容。此时,通过在xml布局文件中设置控件的android:ellipsize属性,可以将无法显示的部分用省略号表示,并放在文本的起始,中间或者结束位置;还可以跑马灯的方式来显示文本(即文本控件获得焦点时,文本会进行滚动显示)。具体设置方法如下所示:
1、默认不处理
android:singleLine="true"
android:ellipsize="none"

2、省略号放在起始
android:singleLine="true"
android:ellipsize="start"

3、省略号放在中间
android:singleLine="true"
android:ellipsize="middle"

4、省略号放在结束
android:singleLine="true"
android:ellipsize="end"

5、跑马灯效果
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"

注:1、android:singleLine="true"表示单行显示。
2、在设置跑马灯效果时候,最好加上android:focusable="true"和android:focusableInTouchMode="true",分别表示可以获得焦点,和在触摸模式下可以获得焦点。
3、android:marqueeRepeatLimit表示跑马灯效果重复显示的次数,只能取值marquee_forever和正整数。取值marquee_forever时,表示跑马灯效果一直重复显示。


下面我们进行实例代码解析:

res-value-string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="marquee_default">This use the default marquee animation limit of 3</string>
    <string name="marquee_once">This will run the marquee animation once</string>
    <string name="marquee_forever">This will run the marquee animation forever</string>
</resources>

res-layout-marquee.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent" 
    android:layout_height="match_parent">
    
    <!-- 默认跑马灯效果 -->
    <Button
        android:layout_width="150dip" 
        android:layout_height="wrap_content"
        android:text="@string/marquee_default"
        android:singleLine="true"  
        android:ellipsize="marquee"/> 
    
    <!-- 跑马灯效果,重复播放一次 -->
    <Button
        android:layout_width="150dip" 
        android:layout_height="wrap_content"
        android:text="@string/marquee_once"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="1"/>

     <!-- 跑马灯效果,一直重复播放 -->       
    <Button
        android:layout_width="150dip" 
        android:layout_height="wrap_content"
        android:text="@string/marquee_forever"      
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"/>  
           
</LinearLayout>

src-com.example.android.apis.text-Marquee.java
package com.example.android.apis.text;

import com.example.android.apis.R;

import android.app.Activity;
import android.os.Bundle;

public class Marquee extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //将marquee布局文件渲染出一个View对象,并作为Activity的默认View
        setContentView(R.layout.marquee);
    }
}

效果预览:

API Demos 2.3 学习笔记 (6) Text&gt;Marquee
                            API Demos 2.3 学习笔记 (6) Text&gt;Marquee

更多相关文章
  • 使用 Windows 集成安全性访问 SQL Server 如果您的应用程序运行在基于 Windows 的 Intranet 上,则也许可以将 Windows 集成身份验证用于数据库访问.集成安全性使用在操作系统线程上建立的当前 Windows 标识来访问 SQL Server 数据库.然后,您可以 ...
  • 我们知道Oracle的统计信息将严重影响CBO对执行计划的选择,针对不同大小的表制定收集规则并且定期执行是非常重要的.Oracle通过如下脚本即可收集统计信息: BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname =>'ZBDBA', tabname =&g ...
  • 信息来源:至尊宝的成长之路比如发现一处可XSS地方:<script>alert(不管怎么样弹出就好)</script>自己弄个偷cookie的文件.目的是让其他浏览者去浏览我们设计好的陷阱<script>document.location=http://URL.c ...
  • 网页加密和破解之&#106avascript 最近闲着无事,正好写点东西,为了让更多的人能理解,我就从最简单的网页讲起好了!我们先从最简单的&#106avascript加密页开始,在网上你可能会碰到很多用&#106avascript编的要求你输入用户和密码的网页,没有密码就不 ...
  • Large Data Types(大数据类型) 大数据类型的bin可以存储大量的对象集合.对象的类型可以是Integer/String/Map/List.Aerospike的单个记录可以包含许多这样的bin,这样的bin允许在单独的记录中包含大量的数据,其限制基于存储能力,记录没有最大值限制. Ae ...
  • 今天下午休息的时候又被扔给一项任务:把全国的街道数据导入街道表.但是他们扔给我的SQL脚本是从网上down的一个,跟平台这边的数据库设计的完全不一样. 当时的思路是:先把扔给我的脚本在本地生成一个表,然后选出要的数据,批量插入到开发库所在服务器的表. 然后,按照这个思路做了个测试: INSERT I ...
一周排行
  • 易网科技讯 2月14日消息,携程旅行网(CTRP)今日公布其截至2010年12月31日第四季度和2010全年未经审计的财务业绩. 2010年第四季度业绩概要: 2010年第四季度的净营业收入为7亿8700万元人民币( ...
  •   ::命名管道不但能实现同一台机器上两个进程通信,还能在网络中不同机器上的两个进程之间的通信机制.与邮槽不同,命名管道是采用基于连接并且可靠的传输方式,所以命名管道传输数据只能一对一进行传输. 1 /* 2 命名管 ...
  •        本文参考Android应用程序组件Content Provider的启动过程源代码分析http://blog.csdn.net/luoshengyang/article/details/6963418和 ...
  • example :      SELECT DATEADD(month, 1, getdate()); https://msdn.microsoft.com/en-us/library/ms186819.aspx
  • 还有三天,北京即将启动营业税改征增值税的试点.一些试点纳税人在购买税控设备时却发现"不得不"花费高达万元的资金来购买全套税控设备.根据上海试点中的相关规定,此次"营改增"的增值 ...
  • [javascript]  strim = String.prototype.trim;  rtrim = /^[\s\uFEFF\xA0]+[\s\uFEFF\xA0]+$/g    trim = strim &a ...
  • 按照Google C++风格,不应该在#include中使用点号和双点号.例如:project/scr/base/logging.h 应该这样包含:#include "base/logging.h" ...
  • 上周在旧金山举行的RSA安全大会上,有关网络恐怖主义的关注是显而易见,安全专家发现,一些极端主义观点的人会用其技术知识侵入系统.   网络恐怖主义目前来看并不严重,但一些极端主义观点的个人表现出很强的入侵技能,这样的 ...
  • 易网科技2月22日讯  摩根士丹利今天发表投资者报告,将阿里巴巴股票评级从增持下调至持有,称将对本次客户欺诈事件持观望态度. 以下为报告主要内容: 欺诈客户调查 目前,阿里巴巴已经终止了约2300名中国"金 ...
  • 今天同事说公司某个机房的某台XX服务器能ping通,登录不上了.我试了试也是这样子的.幸好我已经配置了服务器的管理口IP,不用跑到机房去重启服务器,在管理口登上后,发现,无论打什么命令都报错"bash: f ...