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

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

Войти
Регистрация
Восстановить пароль
 
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
#1

AsyncTask: выполнить действие по окончании анимации - Программирование Android

04.08.2014, 15:35. Просмотров 750. Ответов 3
Метки нет (Все метки)

Есть анимация выполняется 2 секунды... По истечению анимации нужно чтото выполнить например поменять цвет текста. Вот мой код не работает помогите разобраться.
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
public class Sleep3 extends AsyncTask<Void,Void,Void>{
 
        int grey;
        TextView textView;
 
 
        public Sleep3(int grey, TextView textView){
            this.grey = grey;
            this.textView = textView;
            
        }
 
        @Override
        protected Void doInBackground(Void... voids) {
             try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            textView.setTextColor(grey);
            return null;
        }
    }
 
ну и вызываю
new Sleep3(grey,text).execute();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 15:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос AsyncTask: выполнить действие по окончании анимации (Программирование Android):

Выполнить действие в заданную дату - Программирование Android
Мне нужно реализовать такое. Пользователь ввел в EditText скажем такую дату - 15.05.2016 и сервис не сейчас, а именно этого числа и...

Как при окончании выполнения Любой функции, выполнить SLOT? - C++ Qt
connect(this-&gt;webView, SIGNAL(loadFinished(bool)), this, SLOT(wImage())); Как при окончании выполнения ЛЮБОЙ функции, выполнить...

[WPF] Действие после анимации - C# WPF
Нужно чтобы после анимации марджин вернулся в нулевое значение. Но этого не происходит и у эллипса остается новое значение. Ellipse...

Выполнить действие ID - JavaScript
&lt;a href='http://ru.tankiforum.com/index.php?app=core&amp;amp;module=global&amp;amp;section=login' title='Войти' id='sign_in'&gt;Войти&lt;/a&gt; Как...

Выполнить действие - Pascal
Дано действительное а и натуральное n. Вычислить: y = a (a-n) (a-2n) (a-3n) ... (a-n2) Заранее спасибо.

Как выполнить действие? - PHP
Представить в виде алгоритма решение задачи. Имеются три сосуда емко- стью 8, 5 и 3 л. Первый из них наполнен водой. Как разлить воду в...

3
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
04.08.2014, 16:31 #2
kirawa, нельзя работать с UI из doInBackground! Да и зачем костыли, есть callback анимации.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void doAnimation(final TextView affectedView, Animation animation) {
        animation.setDuration(3000L);
        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
 
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                affectedView.setTextColor(Color.GRAY);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
 
            }
        });
        affectedView.setAnimation(animation);
        animation.start();
    }
2
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
05.08.2014, 16:29  [ТС] #3
хорошо, но мне нужно вот так, но не работает:
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
 private void doAnimation_1(final TextView text, final TextView text2, Animation rigth,
                              final Animation rigth2, final int grey, final int transparent) {
        rigth.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
 
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                text.setTextColor(grey);
                можно ли здесь вызывать еще один AnimationListener? я это делаю вот так например
                doAnimation_2(text2,rigth2,transparent);вот я как бы передаю параметры принадлежащие doAnimation_1
                    может по этому у меня неработает как надо?? может класс создать отдельный с конструктором?
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
 
            }
        });
 
        text.startAnimation(rigth);
    }
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
06.08.2014, 16:11 #4
kirawa, что значит "Вызвать ещё один AnimationLister"??? Это просто интерфейс. Нужно подряд несколько анимаций? AnimationSet в помощь
0
06.08.2014, 16:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2014, 16:11
Привет! Вот еще темы с ответами:

Выполнить арифметическое действие y=x/2 - C++
Выполнить арифметическое действие y=x/2.

Выполнить указанные действие - Алгебра
\frac{23334}{6}+\frac{33020}{6}+\frac{444}{6}+\frac{12341}{6}

Как выполнить последовательно две ThicknessAnimation анимации? - C# WPF
Имеется следующий код. Мне необходимо, чтобы объект Rectangle передвигался последовательно: a1 сначала выполняется до конца, а затем a2 от...

Если число от 0 до 5 выполнить действие - C#
Извиняюсь, но не смог найти ответ на свой вопрос, в интернете. как правильно написать в c# int i =3 if i от 0 до 5 то действие


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

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

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