Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 212
1

Анимация textview

09.01.2017, 19:20. Просмотров 1158. Ответов 6
Метки нет (Все метки)

Нашёл на форуме код, но что то пошло не так
Анимация текста. Как будто кто то печатает текст.
Может посмотрите что не так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import android.app.*;
import android.os.*;
import android.widget.*;
import java.util.*;
import android.view.*;
 
public class MainActivity extends Activity 
{
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        }
        
public void onclick (View v){
    
        DelayedPrinter.Word word = new DelayedPrinter.Word(100, "hello_world");
        DelayedPrinter.printText(word, textView);
        }
        
        
    public static class DelayedPrinter {
 
        public static void printText(final Word word, final TextView textView) {
            Random random = new Random(System.currentTimeMillis());
 
            int currentRandOffset = random.nextInt(word.offset);
            boolean addOrSubtract = random.nextBoolean();
            long finalDelay = addOrSubtract ? word.delayBetweenSymbols + currentRandOffset : word.delayBetweenSymbols - currentRandOffset;
            if (finalDelay < 0) finalDelay = 0;
 
            textView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        String charAt = String.valueOf(word.word.charAt(word.currentCharacterIndex));
                        ++word.currentCharacterIndex;
                        textView.setText(textView.getText() + charAt);
                        if (word.currentCharacterIndex >= word.word.length()) return;
                        printText(word, textView);
                    }
                }, finalDelay);
        }
 
 
        public static class Word {
 
            private long delayBetweenSymbols;
            private String word;
            private int offset;
            private int currentCharacterIndex;
 
            public Word(long delayBetweenSymbols, String word) {
                if (delayBetweenSymbols < 0) throw new IllegalArgumentException("Delay can't be < 0");
                this.delayBetweenSymbols = delayBetweenSymbols;
                this.word = word;
            }
 
            public void setOffset(int offset) {
                this.offset = offset;
            }
        }
 
    }
        
    }
Разметка

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"/>
 
    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Button"
        android:onClick="onclick"/>
 
</LinearLayout>
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 19:20
Ответы с готовыми решениями:

Анимация печатания текста в TextView
Приветствую всех. Сразу покажу, чего хочу добиться (черные косяки вокруг...

Анимация счетчика (TextView) от 0 до 1000?
Здравствуйте, всем. Подскажите, пожалуйста, как сделать анимацию значения...

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел...

TextView txt = new TextView(this); - ошибка
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте...

TextView бд
Подскажите можно ли на прямую вызвать из бд в TextView текст?

6
Vladimirys
315 / 211 / 28
Регистрация: 16.01.2010
Сообщений: 618
10.01.2017, 00:16 2
Цитата Сообщение от Nikolarsen Посмотреть сообщение
Нашёл на форуме код, но что то пошло не так
Не так пошло то, что вы даже копировать код не можете.
Анимация печатания текста в TextView
И мона вопрос? Вы вообще программированием не занимались? Не возникло мысли Хммм, а где же мы в onCreate() объявили TextView, на который собрались выводить результат?
Java
1
 textView = (TextView) findViewById(R.id.extView);
1
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 212
12.01.2017, 12:16  [ТС] 3
Спасибо.! Разобрался вроде..
А как из ресурсов текст взять.

Java
1
2
3
4
TextView textView = (TextView) findViewById( (R.id.textView));
        DelayedPrinter.Word word = new DelayedPrinter.Word(90,"Здесь текст который будет печататься...");
        word.setOffset(45);
        DelayedPrinter.printText(word, textView);
Писал R.string. не получилось..
Извините если что. Учусь как могу. Интерес есть времени нет.
0
Pablito
2759 / 2191 / 741
Регистрация: 12.05.2014
Сообщений: 7,688
Завершенные тесты: 1
12.01.2017, 12:21 4
Лучший ответ Сообщение было отмечено Nikolarsen как решение

Решение

Java
1
getString(R.string.str_id)
1
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 212
12.01.2017, 15:32  [ТС] 5
Всем кто помогает таким новичкам как я, огромное спасибо !!!
Всё работает...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import android.app.*;
import android.os.*;
import android.widget.*;
import java.util.*;
import android.view.*;
 
public class MainActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TextView textView = (TextView) findViewById( (R.id.textView));
        DelayedPrinter.Word word = new DelayedPrinter.Word(70,getString(R.string.hello_world));
        word.setOffset(35);
        DelayedPrinter.printText(word, textView);
        }
        
    public static class DelayedPrinter {
 
        public static void printText(final Word word, final TextView textView) {
            Random random = new Random(System.currentTimeMillis());
 
            int currentRandOffset = random.nextInt(word.offset);
            boolean addOrSubtract = random.nextBoolean();
            long finalDelay = addOrSubtract ? word.delayBetweenSymbols + currentRandOffset : word.delayBetweenSymbols - currentRandOffset;
            if (finalDelay < 0) finalDelay = 0;
 
            textView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        String charAt = String.valueOf(word.word.charAt(word.currentCharacterIndex));
                        ++word.currentCharacterIndex;
                        textView.setText(textView.getText() + charAt);
                        if (word.currentCharacterIndex >= word.word.length()) return;
                        printText(word, textView);
                    }
                }, finalDelay);
        }
 
        public static class Word {
 
            private long delayBetweenSymbols;
            private String word;
            private int offset;
            private int currentCharacterIndex;
 
            public Word(long delayBetweenSymbols, String word) {
                if (delayBetweenSymbols < 0) throw new IllegalArgumentException("Delay can't be < 0");
                this.delayBetweenSymbols = delayBetweenSymbols;
                this.word = word;
            }
 
            public void setOffset(int offset) {
                this.offset = offset;
            }
        }
 
    }
        
    }
0
Pablito
12.01.2017, 15:34
  #6

Не по теме:

в Android Strudio есть магическое сочетание клавиш ctrl + alt + L
оно форматирует код класса

0
Nikolarsen
3 / 3 / 1
Регистрация: 17.12.2016
Сообщений: 212
12.01.2017, 19:32  [ТС] 7
Тут мысль меня посетила...
А как сделать чтоб в процессе печатанья появлялись ещё и картинки...

Добавлено через 3 часа 42 минуты
А как сделать паузу на пару секунд между предложениями и продолжить анимацию
0
12.01.2017, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2017, 19:32

Вылетает TextView
Вылетает приложение при переходе на Activity с текстом, превышающим размер...

Прыжок к TextView
На лаяуте имеется множество textView. интересует прыжок к выбранному textView...

ViewPager и TextView
В приложении ViewPager и TextView. Все работает. Теперь нужно впихнуть во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru