Титры с помощью TextView

  1. //содержимое класса активности
  2. package com.example.titresapp;
  3.  
  4. import android.os.Bundle;
  5. import android.app.Activity;
  6. import android.widget.TextView;
  7.  
  8. public class MainActivity extends Activity implements Runnable {
  9.     private TextView titres; // титры
  10.  
  11.     @Override
  12.     protected void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.         this.setContentView(R.layout.activity_main);
  15.         titres = (TextView) findViewById(R.id.titres);
  16.         new Thread(this).start();
  17.     }
  18.  
  19.     @Override
  20.     public void run() {
  21.         while (true) {
  22.             runOnUiThread(new Runnable() {
  23.                 public void run() {
  24.                     titres.scrollBy(0, 1); // прокручиваем содержимое вверх на 1
  25.                                             // пиксель, а прокрутку на 1 пиксель вниз
  26.                     int heightText = titres.getLineCount()
  27.                             * titres.getLineHeight(); // получаем высоту всех
  28.                                                         // строк
  29.                     if (titres.getScrollY() > heightText)
  30.                         titres.scrollTo(0, 0); // если конец текста, то задать
  31.                                                 // прокрутку в начало
  32.                 }
  33.             });
  34.             try {
  35.                 Thread.sleep(100);
  36.             } catch (Exception e) {
  37.             }
  38.         }
  39.     }
  40.  
  41. }
  42. -----
  43. //содержимое разметки
  44. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  45.     xmlns:tools="http://schemas.android.com/tools"
  46.     android:layout_width="match_parent"
  47.     android:layout_height="match_parent" >
  48.  
  49.     <TextView
  50.         android:id="@+id/titres"
  51.         android:layout_width="match_parent"
  52.         android:layout_height="match_parent"
  53.         android:gravity="center_horizontal"
  54.         android:text=" 1 строка титров \u000A 2 трока титров \u000A 3 строка титров \u000A 4 строка титров" >
  55.     </TextView>
  56.  
  57. </LinearLayout>
В текстовой видимости есть методы scrollBy и scrollTo, которые позволяют управлять прокруткой. Первый метод перемещает содержимое текстовой видимости вверх, а прокрутка при этом перемещается вниз. То есть чтобы переместить текст вверх, надо написать scrollBy(0,1) , после этого координата игрек прокрутки будет -1, которую и возвращает метод getScrollY().

Реклама

Мы в соцсетях

tw tg yt gt