Титры с помощью TextView
- //содержимое класса активности
- package com.example.titresapp;
- import android.os.Bundle;
- import android.app.Activity;
- import android.widget.TextView;
- public class MainActivity extends Activity implements Runnable {
- private TextView titres; // титры
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.setContentView(R.layout.activity_main);
- titres = (TextView) findViewById(R.id.titres);
- new Thread(this).start();
- }
- @Override
- public void run() {
- while (true) {
- runOnUiThread(new Runnable() {
- public void run() {
- titres.scrollBy(0, 1); // прокручиваем содержимое вверх на 1
- // пиксель, а прокрутку на 1 пиксель вниз
- int heightText = titres.getLineCount()
- * titres.getLineHeight(); // получаем высоту всех
- // строк
- if (titres.getScrollY() > heightText)
- titres.scrollTo(0, 0); // если конец текста, то задать
- // прокрутку в начало
- }
- });
- try {
- Thread.sleep(100);
- } catch (Exception e) {
- }
- }
- }
- }
- -----
- //содержимое разметки
- <LinearLayout 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" >
- <TextView
- android:id="@+id/titres"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center_horizontal"
- android:text=" 1 строка титров \u000A 2 трока титров \u000A 3 строка титров \u000A 4 строка титров" >
- </TextView>
- </LinearLayout>
В текстовой видимости есть методы scrollBy и scrollTo, которые позволяют управлять прокруткой. Первый метод перемещает содержимое текстовой видимости вверх, а прокрутка при этом перемещается вниз. То есть чтобы переместить текст вверх, надо написать scrollBy(0,1) , после этого координата игрек прокрутки будет -1, которую и возвращает метод getScrollY().