本文修改自GitHub上的工程:https://github.com/sfsheng0322/MarqueeView
效果图:
说明:
基本大致与原作者的工程差不多,只是修改了下细节部分,比如原工程轮询广播时候文字过长会显示两行以及多行,这里修改为一行,最后加入了“…”为结尾
使用:
布局:
<fan.adbardemo.view.MarqueeView
android:id="@+id/mv_bar1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@android:color/holo_red_dark"
app:mvAnimDuration="1000" //一行文字动画执行时间
app:mvInterval="3000" //两行文字翻页时间间隔
app:mvTextColor="@color/colorWhite" //文字颜色
app:mvTextSize="14sp"/> //文字大小
还有一个设置位置的属性:
mvGravity 文字位置:left、center、right,默认在左边
代码中使用:
MarqueeView mMarquee1 = (MarqueeView) findViewById(R.id.mv_bar1);
MarqueeView mMarquee2 = (MarqueeView) findViewById(R.id.mv_bar2);
//设置集合
List<String> items = new ArrayList<>();
items.add("这是第1个");
items.add("这是第2个");
items.add("这是很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的第3个");
items.add("这是第4个");
items.add("这是第5个");
items.add("这是第6个");
items.add("这是第7个");
mMarquee1.startWithList(items);
//设置字符串
String str = "这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的一段话,是不是很长?";
mMarquee2.startWithText(str);
//设置点击监听
mMarquee1.setOnItemClickListener(new MarqueeView.OnItemClickListener() {
@Override
public void onItemClick(int position, TextView textView) {
Toast.makeText(MainActivity.this, textView.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
本文下载:点击下载源码及apk