Страница 1 из 1
Прокрутка текста
Добавлено: 30 апр 2013, 08:40
kan_08
Подскажите как сделать автоматическую прокрутку текста? Размещаю текст в TextView, например большой стих и чтоб руками не крутить его, надо чтоб текст сам прокручивался через некоторое время после открытия.
Re: Прокрутка текста
Добавлено: 30 апр 2013, 10:22
DevSergio
Я так делал
Код: Выделить всё
tvOptimizeCode = (TextView) findViewById(R.id.
scrollViewCode = (ScrollView) findViewById(R.id.scrollView1);
heightScroll = scrollViewCode.getHeight();
heightTv = tvOptimizeCode.getHeight();
int estimate = 30000;
int updateTime = 10;
new CountDownTimer(estimate, updateTime) {
int diff = (int) ((heightTv - heightScroll) / 1100);
int realPosition = 0;
public void onTick(long millisUntilFinished) {
realPosition += diff;
scrollViewCode.scrollTo(0, realPosition);
}
@Override
public void onFinish() {
}
}.start();
Re: Прокрутка текста
Добавлено: 30 апр 2013, 12:23
kan_08
Сделал все как сказали, не получается.
MainActivity.java:
Код: Выделить всё
package com.example.testsinger;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.Spanned;
import android.widget.ScrollView;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvContent;
ScrollView sv;
int heightScroll, heightTv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvContent = (TextView)findViewById(R.id.tvContent);
sv = (ScrollView) findViewById(R.id.sv);
String htmlTaggedString = getString(R.string.article_pushkin_stih);
Spanned textSpan = android.text.Html.fromHtml(htmlTaggedString);
tvContent.setText(textSpan);
heightScroll = sv.getHeight();
heightTv = tvContent.getHeight();
int estimate = 30000;
int updateTime = 10;
new CountDownTimer(estimate, updateTime) {
int diff = (int) ((heightTv - heightScroll) / 1100);
int realPosition = 0;
public void onTick(long millisUntilFinished) {
realPosition += diff;
sv.scrollTo(0, realPosition);
}
@Override
public void onFinish() {
}
}.start();
}
}
Re: Прокрутка текста
Добавлено: 30 апр 2013, 13:34
kan_08
А если на кнопку вешаю sv.scrollBy(0, +50); то все работает. А просто в OnCreate sv.scrollBy(0, +50); не работает...
Re: Прокрутка текста
Добавлено: 02 май 2013, 08:54
DevSergio
Забыл сказать что это должно быть не в onCreate а в onWindowFocusChanged(boolean hasFocus) { }
Re: Прокрутка текста
Добавлено: 06 май 2013, 08:08
kan_08
Спасибо за ответ

Re: Прокрутка текста
Добавлено: 06 май 2013, 08:33
kan_08
Все равно не получается.
Код: Выделить всё
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.Spanned;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvContent;
ScrollView sv;
int heightScroll, heightTv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonScrollUp;
tvContent = (TextView)findViewById(R.id.tvContent);
sv = (ScrollView)findViewById(R.id.sv);
buttonScrollUp = (Button) findViewById(R.id.scrollup);
String htmlTaggedString = getString(R.string.article_pushkin_stih);
Spanned textSpan = android.text.Html.fromHtml(htmlTaggedString);
tvContent.setText(textSpan);
//sv.scrollBy(0, +250);
tvContent.scrollBy(0, +250);
}
@Override
public void onWindowFocusChanged(boolean hasFocus){
heightScroll = sv.getHeight();
heightTv = tvContent.getHeight();
int estimate = 30000;
int updateTime = 10;
new CountDownTimer(estimate, updateTime) {
int diff = (int) ((heightTv - heightScroll) / 1100);
int realPosition = 0;
public void onTick(long millisUntilFinished) {
realPosition += diff;
sv.scrollTo(0, realPosition);
}
@Override
public void onFinish() {
}
}.start();
}
}
Можете выложить свой код?