这篇文章主要为大家详细介绍了 Android 基于 TextView 实现跑马灯效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
当 Layout 中只有一个 TextView 需要实现跑马灯效果时,操作如下。
在 Layout 的 TextView 配置文件中增加
以上四条属性,即可实现跑马灯效果。
当有多个 TextView 想实现跑马灯效果时,实现起来稍微复杂一些。
首先新建一个类,继承自 TextView。
- package com.example.project1;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.view.ViewDebug.ExportedProperty;
- import android.widget.TextView;
- public class MyTextView extends TextView{
- public MyTextView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- // TODO Auto-generated constructor stub
- }
- public MyTextView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
- public MyTextView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
- @Override
- public boolean isFocused() {
- // TODO Auto-generatd method stub
- return true;
- }
- }
重写函数 isFocused(),使其始终 return true。
将 Layout 文件中的 TextView 修改为 com.example.project1.MyTextView,如下。
- <com.example.project1.MyTextView
- android:id="@+id/textView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="marquee"
- android:focusable="true"
- android:focusableInTouchMode="true"
- android:singleLine="true"
- android:text="@string/longText" />
- <com.example.project1.MyTextView
- android:id="@+id/textView2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="marquee"
- android:focusable="true"
- android:focusableInTouchMode="true"
- android:singleLine="true"
- android:text="@string/longText" />
此时两个 TextView 都可呈现跑马灯效果。
来源: http://www.phperz.com/article/17/0319/326156.html