Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Nikolarsen
1 / 1 / 0
Регистрация: 17.12.2016
Сообщений: 172
#1

Анимация textview - Программирование Android

09.01.2017, 19:20. Просмотров 431. Ответов 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 (Программирование Android):

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

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

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

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

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

Часы в TextView - Программирование Android
Доброго времени суток. Делаю часы в textview, время ставлю через два NumberPicker. Все работает(если число минут меньше 10, то вперед...

6
Vladimirys
310 / 207 / 25
Регистрация: 16.01.2010
Сообщений: 603
10.01.2017, 00:16 #2
Цитата Сообщение от Nikolarsen Посмотреть сообщение
Нашёл на форуме код, но что то пошло не так
Не так пошло то, что вы даже копировать код не можете.
Анимация печатания текста в TextView
И мона вопрос? Вы вообще программированием не занимались? Не возникло мысли Хммм, а где же мы в onCreate() объявили TextView, на который собрались выводить результат?
Java
1
 textView = (TextView) findViewById(R.id.extView);
1
Nikolarsen
1 / 1 / 0
Регистрация: 17.12.2016
Сообщений: 172
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
2578 / 2060 / 642
Регистрация: 12.05.2014
Сообщений: 7,224
Завершенные тесты: 1
12.01.2017, 12:21 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
getString(R.string.str_id)
1
Nikolarsen
1 / 1 / 0
Регистрация: 17.12.2016
Сообщений: 172
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
1 / 1 / 0
Регистрация: 17.12.2016
Сообщений: 172
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
Привет! Вот еще темы с ответами:

ViewPager и TextView - Программирование Android
В приложении ViewPager и TextView. Все работает. Теперь нужно впихнуть во ViewPager 2 TextView. Можно ли это сделать и как?

EditText и TextView - Программирование Android
Добрый день. Хочу написать приложение ТСР клиент. Возникла сложность с вводом IPшника в EditText и последующем его выводом в TextView...

Вылетает TextView - Программирование Android
Вылетает приложение при переходе на Activity с текстом, превышающим размер экрана в стандартном масштабе. Текст храню в string.xml,...

Calendar textView - Программирование Android
Прошу прощение за название темы! Хотел назвать &quot;Операции с датой + вывод в textView&quot;, но тут увидел автопоиск, ищущий по введённому...


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

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

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