Android textview和listview实现水平自动滚动的走马灯效果
来源:互联网 发布:改短信号码软件 编辑:程序博客网 时间:2024/05/19 18:15
当我们遇到需要在一个textview里显示较长文字时候,往往有以下几种考虑:
1.换行,Android里本身也是这样在考虑;
2.可以进行水平或者垂直滑动;
3.采用走马灯效果。
其实这三种要实现都不难,根据实际情况进行选择就是了。不过我在具体实现走马灯时候遇到了一些问题,后来参考了下大神的代码,得以解决,记录一下。
代码地址是:http://download.csdn.net/download/wds1181977/5997065
具体情况如下:
textview里要实现走马灯效果,主要需要三点:
设置单行显示;设置文本超出textview后的效果;以及最重要的是设置焦点。
对应代码如下:
<TextView android:id="@+id/tv_title" android:layout_width="100dp" android:layout_height="match_parent" android:text="基本信息" android:textColor="@color/black" android:gravity="center_vertical" android:scrollHorizontally="true" android:focusable="true" android:focusableInTouchMode="true" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" />
focusable和fucosableInTouchMode是配套用来设置获取焦点的;singleLine是设置单行;ellipsize是设置文本过长的效果,其中marquee是走马灯的效果,marqueeRepeatLimit是自动滚动显示多少次,marquee_forver是一直滚动。
这样写好了以后,但实际我运行的时候并没有出现走马灯的效果,而是显示了最前面部分,然后就是,,,省略掉后面内容了。
找了一下原因,就是在这个获取焦点上。
一般情况我们的布局都比demo复杂,静态的设置focusable=true甚至动态的在代码用textview.setfocusable里设置并不能保证焦点就是在这个textview上。
所以更好的办法是写一个自定义的textview,将焦点写死。比如:
public class MTextView extends TextView { public MTextView(Context context) { super(context); // TODO Auto-generated constructor stub } public MTextView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean isFocused() { // TODO Auto-generated method stub return true; }}然后在代码里 引用:
<com.diit.apppro.presentation.view.component.common.MTextView android:id="@+id/tv_title" android:layout_width="100dp" android:layout_height="match_parent" android:text="基本信息" android:textColor="@color/black" android:gravity="center_vertical" android:scrollHorizontally="true" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" />这样就可以实现了。
如果是listview的话,只需要在每个item里的textview引用这个自定义view即可实现各自的走马灯效果。
- Android textview和listview实现水平自动滚动的走马灯效果
- android 实现文字自动滚动的走马灯效果。
- Android走马灯滚动效果的实现
- [Android] TextView实现走马灯效果
- [Android] TextView实现走马灯效果
- [Android] TextView实现走马灯效果
- Android TextView实现水平滚动显示效果
- Android TextView的走马灯效果
- android 实现textView的走马灯
- TextView实现走马灯效果
- android TextView 走马灯效果
- Android TextView走马灯效果
- Android TextView 走马灯效果
- Android TextView走马灯效果
- Android开发之TextView文字水平滚动效果实现
- TextView的走马灯效果
- Android中一直走马灯效果的TextView
- Android中一直走马灯效果的TextView
- TCP协议中的三次握手和四次挥手(图解)
- mysql缺少mysql数据库原因
- Android 多线程
- 第十三章练习
- 图像上采样和降采样
- Android textview和listview实现水平自动滚动的走马灯效果
- Tomcat 最大并发连接数的正确设置方法
- 设计模式之单例模式的几种写法
- 数据结构:练习题
- Eigen介绍及简单使用
- Linux中Tomcat安装与配置
- Windows平台Socket通信实例
- ACM ASCII码排序
- spring整合jdbc