Android跑马灯Marquee
2016-01-07 17:18
477 查看
转载请标明出处:/article/8809962.html
本文出自【吴孝城的CSDN博客】
Android中的TextView里的内容过多时,会在后面用"..."省略没有显示的内容
有时我们想要内容滚动,可添加ellipsize,将其设置为Marquee,的方法来实现。
要用android:singleLine="true"将要显示的内容设置为一行,
android:marqueeRepeatLimit="marquee_forever"让它一直滚动,可以改为数字
android:focusable="true" 要显示该跑马灯,就得让该view获得焦点,这样跑马灯才会实现
如果只设置一个TextView实现跑马灯的话,直接在xml文件里设置TextView属性就行
如下
当设置多个TextView时,会发现只有一个会动,其他还是不会动。
这时我们可以用自定义TextView来实现
新建一个类
MarqueeText.java
这样便可让两个TextView都实现跑马灯的效果了
本文出自【吴孝城的CSDN博客】
Android中的TextView里的内容过多时,会在后面用"..."省略没有显示的内容
有时我们想要内容滚动,可添加ellipsize,将其设置为Marquee,的方法来实现。
要用android:singleLine="true"将要显示的内容设置为一行,
android:marqueeRepeatLimit="marquee_forever"让它一直滚动,可以改为数字
android:focusable="true" 要显示该跑马灯,就得让该view获得焦点,这样跑马灯才会实现
如果只设置一个TextView实现跑马灯的话,直接在xml文件里设置TextView属性就行
如下
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="2" android:singleLine="true" android:text="@string/hello_world" />
当设置多个TextView时,会发现只有一个会动,其他还是不会动。
这时我们可以用自定义TextView来实现
新建一个类
MarqueeText.java
package cn.wuxiaocheng.marquee; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; public class MarqueeText extends TextView { public MarqueeText(Context context) { super(context); // TODO Auto-generated constructor stub } public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } public MarqueeText(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean isFocused() { return true; //一直返回true,假装这个控件一直获取着焦点 } }然后让布局中的TextView使用它
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="cn.wuxiaocheng.marquee.MainActivity" > <cn.wuxiaocheng.marquee.MarqueeText android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="@string/hello_world" /> <cn.wuxiaocheng.marquee.MarqueeText android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv" android:layout_marginTop="10dp" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="@string/hello_world" /> </RelativeLayout>
这样便可让两个TextView都实现跑马灯的效果了
相关文章推荐
- 182,UIButton继承UIControl,UIControl中常用的属性和方法
- Photos(PHAssetCollectionChangeRequest)
- Photos(PHCollectionListChangeRequest)
- IEnumerable和IQueryable的区别
- 用Zoho Recruit轻松发面试反馈
- Qt 5入门指南之Qt Quick编程示例
- UIPickerView选择器的使用方法
- easyui汉化啊!
- Retrofit之Query注解
- Retrofit之Query注解
- iOS开发之UIKit类继承图
- Fuel部署OpenStack架构分析
- Ubuntu AC701 Build-in Self-test
- iOS uitableview自定义相册(实现拍照并保存在指定目录以相册的形式展示图片)
- 自定义UI(由上而下版)
- miniUI 之 myAPI
- 自定义UI(由下而上版)之第三阶段
- 【leetcode】:Range Sum Query - Immutable
- 自定义UI(由下而上版)之第二阶段
- 使用Android Studio调试UiAutomator过程中遇到的问题