如何改变textview字幕滚动速度
时间: 2023-07-27 12:09:03 浏览: 126
TextView设置字体格式以及滚动显示效果
你可以通过设置TextView的滚动速度属性来改变字幕滚动的速度。在XML布局文件中,你可以使用以下属性:
```xml
android:ellipsize="marquee" //开启滚动效果
android:marqueeRepeatLimit="marquee_forever" //无限循环滚动
```
在Java代码中,你可以使用以下方法来改变滚动速度:
```java
textView.setHorizontallyScrolling(true); //开启水平滚动效果
textView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); //隐藏滚动条
textView.setMarqueeRepeatLimit(-1); //无限循环滚动
textView.setSingleLine(true); //单行显示
textView.setSelected(true); //获取焦点,开启滚动效果
//设置滚动速度
final float speed = 50.0f; //滚动速度,单位为像素/秒
final float delay = 1000.0f / speed; //每个像素的滚动时间,单位为毫秒
textView.setHorizontallyScrolling(true);
textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
textView.setMarqueeRepeatLimit(-1);
textView.setSingleLine(true);
textView.postDelayed(new Runnable() {
@Override
public void run() {
textView.scrollBy(1, 0);
textView.postDelayed(this, (long) delay);
}
}, (long) delay);
```
上面代码中,我们使用了 `setHorizontallyScrolling()` 方法开启了水平滚动效果,使用了 `setScrollBarStyle()` 方法隐藏了滚动条,使用了 `setSingleLine()` 方法保证了只显示一行文字。然后使用 `setSelected()` 方法获取了焦点,开启了滚动效果。最后使用 `postDelayed()` 方法和一个 `Runnable` 对象实现了每个像素的滚动时间,从而实现了滚动速度的改变。
阅读全文