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

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

Войти
Регистрация
Восстановить пароль
 
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
#1

Анимация плавного исчезновения ImageView - Программирование Android

16.12.2016, 14:08. Просмотров 355. Ответов 9
Метки нет (Все метки)

Пытаюсь сделать плавное исчезновение imageView (zoomin в коде) , все компилируется , но программа сначала долго не реагирует а потом zoomin исчезает как при простом GONE
toast - старт вообще не появляется. Стоп появляется в конце

В логе Skipped 551 frames! Как такое может быть ведь AsyncTask не главный поток ????????


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
  @Override
        protected void onPreExecute() {
            super.onPreExecute();
 
            Toast.makeText(getApplicationContext(), "Старт", Toast.LENGTH_LONG).show();
 
                float getA=1f;
 
                for (int i=0; i<20; i++) {
 
                    if ((getA-0.1f)>0) {
 
                        try {
                        TimeUnit.SECONDS.sleep(1);
 
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
 
                    getA=getA-0.1f;
                        zoomin.setAlpha(getA);
 
                    }
                    else
                    {
                        zoomin.setAlpha(0f);
                    }
 
                    testtextView.setText(Float.toString(getA));
 
                }
 
 
 
 
            Toast.makeText(getApplicationContext(), "Стоп", Toast.LENGTH_LONG).show();
 
        }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2016, 14:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анимация плавного исчезновения ImageView (Программирование Android):

ImageView и анимация - Программирование Android
Всем привет! Как можно переместить ImageView за пределы правой границы экрана ровно на половину изображения? Использую отрицательный...

Анимация ImageView - Программирование Android
Здравствуйте. Как реализовать анимацию Imageview таким образом,что бы при нажатии кнопка затемнялась от центра к краям. Может плохо...

Скопировать картинку из одной ImageView в другую ImageView - Программирование Android
В ImageView поставлена картинка методом setImageResource. По нажатию на неё, нужно такую-же картинку поставить в другую вью, а в первой...

ImageView - Программирование Android
Добрый день ! Делал проект с нуля, все как обычно, но при поиске id для ImageView мне вдруг выдает : The method findByViewId(int) is...

ImageView - Программирование Android
Подскажите как правильно выводить картинку из URL Вроде нашел какой то пример в сети, но что то не работает. Да и почитав, понял что...

ImageView - Программирование Android
Добрый день. Вы не подскажите, как передать изображение из одного ImageView в Другой. Допустим есть три картинки в папке drawable и одна...

9
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
16.12.2016, 15:05 #2
А где функция doInBackground, которая и выполняет всю работу в отдельном потоке?
И которая кстати не имеет доступ к главному треду.
1
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
16.12.2016, 15:09 #3
onPreExecute выполняется в главном потоке, а там в коде sleep 20 раз вызывается

почему нельзя просто создать анимацию и запустить ее на zoomin прямо перед стартом асинктаска?
1
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
16.12.2016, 15:16  [ТС] #4
Можно пример такой анимации????

Добавлено через 1 минуту
doInBackground - я ее оставил пустой так как нет смысла мне же нужно управлять видимостью вьюшки а doInBackground не имеет доступа к ним насколько я понял.
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
16.12.2016, 15:17 #5
то есть асинк таск для того, что бы управлять прозрачностью вьюшки? это печально
0
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
16.12.2016, 15:22  [ТС] #6
я понимаю что решение не лучшее , но как иначе реализовать затухание???????
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
16.12.2016, 15:25 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
1. в папке res/anim создаем например файл fade.xml с таким содержимым
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="5000"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0" />
</set>
2. используем где надо в коде, без всяких асинктасков
Java
1
2
        Animation a = AnimationUtils.loadAnimation(this, R.anim.fade);
        view.startAnimation(a);
1
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
16.12.2016, 16:11  [ТС] #8
Спасибо!!! Такого решения я не знал буду пробовать!!!

Добавлено через 43 минуты
Появилась маленькая проблемка. После того как анимация выполнена нужно еще выполнить GONE иначе элемент (кнопка ) остается активным. Причем сделать это надо после того как кнопка стала невидима. Как отследить что анимация завершилась?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
16.12.2016, 16:21 #9
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        final View view = findViewById(R.id.view);
        Animation a = AnimationUtils.loadAnimation(this, R.anim.fade);
        view.startAnimation(a);
        a.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                view.setVisibility(GONE);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
2
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
16.12.2016, 17:16  [ТС] #10
Спасибо!
0
16.12.2016, 17:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2016, 17:16
Привет! Вот еще темы с ответами:

Взаимодействие с ImageView - Программирование Android
Господа подскажите как сделать так, чтобы пользователь мог взаимодействовать только с частью ImageView(в данном случай с выводами...

Снова ImageView - Программирование Android
Значит, ситуация такая: создаю IV, ставлю в определённое место, запускаю покадровую анимацию. После анимации требуется нажать на...

Использование ImageView - Программирование Android
Установил Андроид Студио. Пытаюсь вникнуть. Наткнулся на первую проблемку, уже впринципе долговато не могу понять. На форму ложу...

Массив из ImageView - Программирование Android
Подскажите как создать массив из ImageView? Пытался сделать так: RelativeLayout l=(RelativeLayout)findViewById(R.id.RelativeLayout1); ...


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

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

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