Прокрутка текста

Ответить
kan_08
Сообщения: 39
Зарегистрирован: 11 апр 2013, 13:01

Прокрутка текста

Сообщение kan_08 » 30 апр 2013, 08:40

Подскажите как сделать автоматическую прокрутку текста? Размещаю текст в TextView, например большой стих и чтоб руками не крутить его, надо чтоб текст сам прокручивался через некоторое время после открытия.

DevSergio
Сообщения: 37
Зарегистрирован: 22 янв 2013, 19:51
Откуда: Kharkov

Re: Прокрутка текста

Сообщение DevSergio » 30 апр 2013, 10:22

Я так делал

Код: Выделить всё

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();

kan_08
Сообщения: 39
Зарегистрирован: 11 апр 2013, 13:01

Re: Прокрутка текста

Сообщение kan_08 » 30 апр 2013, 12:23

Сделал все как сказали, не получается.
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(); 
	}

}

kan_08
Сообщения: 39
Зарегистрирован: 11 апр 2013, 13:01

Re: Прокрутка текста

Сообщение kan_08 » 30 апр 2013, 13:34

А если на кнопку вешаю sv.scrollBy(0, +50); то все работает. А просто в OnCreate sv.scrollBy(0, +50); не работает...

DevSergio
Сообщения: 37
Зарегистрирован: 22 янв 2013, 19:51
Откуда: Kharkov

Re: Прокрутка текста

Сообщение DevSergio » 02 май 2013, 08:54

Забыл сказать что это должно быть не в onCreate а в onWindowFocusChanged(boolean hasFocus) { }

kan_08
Сообщения: 39
Зарегистрирован: 11 апр 2013, 13:01

Re: Прокрутка текста

Сообщение kan_08 » 06 май 2013, 08:08

Спасибо за ответ :-)

kan_08
Сообщения: 39
Зарегистрирован: 11 апр 2013, 13:01

Re: Прокрутка текста

Сообщение kan_08 » 06 май 2013, 08:33

Все равно не получается.

Код: Выделить всё

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();
   
	 }
	 }
Можете выложить свой код?

Ответить