Android实现跑马灯效果的两种简单⽅式
第⼀种:较简单,但是局限性强,貌似只能从右⾄左跑,且有⼀个要求:字体的长度需⼤于控件的长度, 不然没有效果,重要的代码为深⾊部分,具体代码在⽂章最后。
重要代码的介绍
1. android:ellipsize=“marquee” 设置为跑马灯的显⽰⽅式
2. android:focusable=“true” 获得焦点
3. android:focusableInTouchMode=“true” 可以通过触动来获取焦点
4. android:marqueeRepeatLimit=“marquee_forever” 设置重复的次数
5. android:singleLine=“true” 单⾏显⽰
第⼆种:利⽤定时器改变 padding 的值来起到跑马灯的效果,各个⽅向都可以,⽆第⼀种的要求,主要起到作⽤的为setPadding ⽅法,在最后记得要关闭定时器!
1. 布局⽂件
2. 实现功能的代码
再次强调记得关掉定时器!
具体代码如下:
第⼀种⽅法:
<TextView
android:text="班⾥发⽣什么了?不知道,先起哄再说。"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:layout_width="200dp"
android:layout_height="wrap_content" />
第⼆种⽅法:
布局⽂件:
<TextView
android:id="@+id/mytext"
android:gravity="center_vertical"
android:text="班⾥发⽣什么了?不知道,先起哄再说。"
android:layout_width="match_parent"
android:layout_height="40dp" />
Java ⽂件:
public class MainActivity extends Activity {
private TextView mytext;
private Handler handler;
private Runnable runnable;
private int theroll=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
marquee marquee
setContentView(R.layout.activity_main);
initView();
marquee();//记得调⽤⽅法
}
private void initView() {
//实例化
mytext = (TextView) findViewById();
}
//滚动的具体代码
private void marquee(){
handler=new Handler();
runnable=new Runnable() {
@Override
public void run() {
if (theroll>80){
theroll=-80;
}
theroll=theroll+2;
//通过设置下⾯的四个参数可以起到控制滚动⽅向的作⽤
mytext.setPadding(theroll,0,0,0);
handler.postDelayed(this,100);//可调整速度
}
};
handler.postDelayed(runnable,0);
}
@Override
protected void onDestroy() {
//在最后记得要关掉定时器
}
}
总结
到此这篇关于Android实现跑马灯的⽂章就介绍到这了,更多相关Android实现跑马灯内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。