Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
kirawa
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 343
#1

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

04.08.2014, 15:35. Просмотров 861. Ответов 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
Ответы с готовыми решениями:

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

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

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

Выполнить действие ID
&lt;a...

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

3
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 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
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 343
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
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
06.08.2014, 16:11 #4
kirawa, что значит "Вызвать ещё один AnimationLister"??? Это просто интерфейс. Нужно подряд несколько анимаций? AnimationSet в помощь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2014, 16:11

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

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

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


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

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

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