Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
#1

После анимации открывать другой layout

05.04.2015, 21:50. Просмотров 739. Ответов 13
Метки нет (Все метки)

необходимо, чтобы после анимации открывался другой layout

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
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.os.Handler;
 
 
public class MainActivity extends ActionBarActivity {
 
    Handler handler;
    ImageView img;
    Intent intent = new Intent(this, choose_language.class);
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        Animation anim = null;
        anim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(anim);
        handler = new Handler();
        task.run();
 
       // Intent intent = new Intent(this, choose_language.class);
        //  startActivity(intent);
    }
 
    Runnable task = new Runnable() {
        public void run() {
            startActivity(intent);
            handler.postAtTime(this, 3000);
        }
    };
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2015, 21:50
Ответы с готовыми решениями:

Переход на другой layout через button
Добрый вечер, подскажите пожалуйста: мне нужно, чтобы при нажатии кнопки...

Анимированный дизайн смены Layout или просто выдвигаемый layout
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити,...

Не хочет работать в layout, но включается в layout-land
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так :...

Как избавиться от мусора на экране, который остался после анимации?
Сделал анимацию появления и удаления картинок внутри ScrollView. Но после них...

13
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
06.04.2015, 11:27 #2
Цитата Сообщение от maksim94 Посмотреть сообщение
необходимо, чтобы после анимации открывался другой layout
У анимации есть слушатель, там есть метод, который будет вызван после выполнения
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
animation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
 
    }
 
    @Override
    public void onAnimationEnd(Animation animation) {
 
    }
 
    @Override
    public void onAnimationRepeat(Animation animation) {
 
    }
});
0
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 13:15  [ТС] #3
contedevel, не подскажете, в чем может быть ошибка?
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
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.widget.ImageView;
 
 
public class MainActivity extends ActionBarActivity implements AnimationListener {
 
    ImageView img;
    Animation anim = null;
    Intent intent = new Intent(this, choose_language.class);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        anim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(anim);
 
        anim.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                setContentView(R.layout.main);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
}
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
06.04.2015, 13:27 #4
Цитата Сообщение от maksim94 Посмотреть сообщение
не подскажете, в чем может быть ошибка?
Я с мобильника, выложи лог хотя бы, не удобно код просматривать
0
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 13:40  [ТС] #5
contedevel, Error13, 8) error: MainActivity is not abstract and does not override abstract method onAnimationRepeat(Animation) in AnimationListener
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

или

:app:compileDebugJava
C:\Users\Максим\Documents\start\popytka2\app\src\main\java\ru\startandroid\popytka2\MainActivity.java:13: error: MainActivity is not abstract and does not override abstract method onAnimationRepeat(Animation) in AnimationListener
public class MainActivity extends ActionBarActivity implements AnimationListener {
^
1 error

FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 5.728 secs
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
06.04.2015, 13:42 #6
Вы зачем-то наследовали интерфейс AnimationListener в Activity, но не реализовали его и не используете... Уберите эту строчку тогда:
Java
1
 implements AnimationListener
1
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 14:57  [ТС] #7
contedevel, от ошибки, спасибо, получилось избавиться)
но есть одно "но": приложение запускается, но только если убрать intetnt и startactivity. как это можно исправить?
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
public class MainActivity extends ActionBarActivity {
 
    ImageView img;
    Animation anim = null;
 
    Intent intent = new Intent(this, choose_language.class);
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        anim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(anim);
 
        anim.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                startActivity(intent);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
}
0
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
06.04.2015, 15:16 #8
maksim94, А если не убирать что выходит? Какая ошибка?
И пропишите в строчке
Java
1
Intent intent = new Intent(this, choose_language.class);
вместо this --> MainActivity.this
0
androbro
343 / 303 / 68
Регистрация: 17.10.2014
Сообщений: 897
06.04.2015, 15:16 #9
maksim94, посмотрите где вы инициализируете intent
Цитата Сообщение от maksim94 Посмотреть сообщение
Intent intent = new Intent(this, choose_language.class);
в метод его засуньте, там и контекст будет.
0
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 17:09  [ТС] #10
все работает, спасибо.
суть анимации в изменении прозрачности от 0 до 1 и обратно, то есть в итоге картинка исчезает. все проходит хорошо, но в конце, перед открытием нового layout, картинка вновь становится видимой буквально на секунду. как это исправить?
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
06.04.2015, 23:45 #11
Цитата Сообщение от maksim94 Посмотреть сообщение
все работает, спасибо.
суть анимации в изменении прозрачности от 0 до 1 и обратно, то есть в итоге картинка исчезает. все проходит хорошо, но в конце, перед открытием нового layout, картинка вновь становится видимой буквально на секунду. как это исправить?
Java
1
choose_language
Нехорошо так классы называть
0
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
07.04.2015, 01:28  [ТС] #12
contedevel, название класса я сменил, но это никак не влияло, но повторное отображение картинки
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
07.04.2015, 01:31 #13
Лучший ответ Сообщение было отмечено maksim94 как решение

Решение

Цитата Сообщение от maksim94 Посмотреть сообщение
contedevel, название класса я сменил, но это никак не влияло, но повторное отображение картинки
И не должно было

Добавлено через 1 минуту
Цитата Сообщение от maksim94 Посмотреть сообщение
картинка вновь становится видимой буквально на секунду. как это исправить?
В конце анимации
Java
1
2
img.setVisibility(View.INVISIBLE);
img.invalidate();
Добавлено через 34 секунды
Хотя, вроде, и в начале можно
1
maksim94
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 133
07.04.2015, 02:02  [ТС] #14
contedevel, кажется, я где-то свернул не туда и все перестало работать) выручайте)
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
public class MainActivity extends ActionBarActivity {
 
    ImageView img;
    Animation alpha = null;
 
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        alpha = AnimationUtils.loadAnimation(this, R.anim.alpha);
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(alpha);
        
 
 
        alpha.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                Intent intent = new Intent(MainActivity.this, fourthActivity.class);
                startActivity(intent);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
}
Добавлено через 10 минут
contedevel аее! все классно) спасибо, работает
0
07.04.2015, 02:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 02:02

Добавить layout на layout
Нашёл такой код: layout.add(view); только не понимаю куда его писать. Нужно...

Auto layout после анимации и трансформации
Добрый день! У меня возник вопрос относительно применения constraints после...

После переустановки Windows XP не могу открывать ссылки через Яндекс или любой другой поисковик
После переустановки Windows XP не могу открывать ссылки через Яндекс или любой...


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

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

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