--------------------【Android】跑马灯效果(文字滚动)
16lz
2022-05-18
http://blog.csdn.net/etzmico/article/details/6943070
所谓跑马灯效果就是当文字超过控件所能容纳的空间时,在控件内滚动的效果。
要实现这样的效果需要在布局文件中加上:
[java] view plain copy
- android:singleLine=”true”
- android:ellipsize=”marquee”
- android:focusableInTouchMode=”true”
- android:focusable=”true”
需要注意的是:layout_width=”"要写成固定值,不能是wrap_content或者fill_parent,而且要比text长度长。另外还可以设置滚动的次数android:marqueeRepeatLimit=”";
android:marqueeRepeatLimit=”marquee_forever”表示一直滚动。
但是这种跑马灯只有在控件获得焦点时在能滚动,要想让控件里的内容一直滚动就要定制该控件,重写里面的三个方法:
[java] view plain copy
- packagecn.etzmico.marqueetest;
- importandroid.content.Context;
- importandroid.graphics.Rect;
- importandroid.util.AttributeSet;
- importandroid.widget.Button;
- publicclassMarqueeButtonextendsButton{
- publicMarqueeButton(Contextcontext,AttributeSetattrs){
- super(context,attrs);
- //TODOAuto-generatedconstructorstub
- }
- @Override
- protectedvoidonFocusChanged(booleanfocused,intdirection,
- RectpreviouslyFocusedRect){
- //TODOAuto-generatedmethodstub
- if(focused)
- super.onFocusChanged(focused,direction,previouslyFocusedRect);
- }
- @Override
- publicvoidonWindowFocusChanged(booleanhasWindowFocus){
- //TODOAuto-generatedmethodstub
- if(hasWindowFocus)
- super.onWindowFocusChanged(hasWindowFocus);
- }
- @Override
- publicbooleanisFocused(){
- returntrue;
- }
- }
[java] view plain copy
- <cn.easymobi.application.memorytest.MarqueeButton
- android:layout_width=”216dip”
- android:layout_height=”wrap_content”
- android:id=”@+id/btSecond”
- android:background=”@drawable/button_test2″
- android:layout_marginTop=”15dip”
- android:text=”@string/calculate”
- android:ellipsize=”marquee”
- android:gravity=”center”
- android:textColor=”@color/white”
- android:textStyle=”bold”
- android:focusable=”true”
- android:marqueeRepeatLimit=”marquee_forever”
- android:focusableInTouchMode=”true”
- android:scrollHorizontally=”true”
- android:singleLine=”true”
- android:paddingLeft=”50dip”
- android:paddingRight=”50dip”
- android:textSize=”20dip”
- />
更多相关文章
- Android动画效果translate、scale、alpha、rotate
- android 地图 infoWindow的每个控件添加点击事件
- Android(安卓)相对布局(Relative Layout)
- 布局使用selector不变色问题
- Android(安卓)编程下 Touch 事件的分发和消费机制
- android布局 LinearLayout和RelativeLayout
- Android:实现一种浮动选择菜单的效果
- [Android]自定义弹幕View
- android 与 js 互调