Форум программистов, компьютерный форум CyberForum.ru

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

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

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

05.04.2015, 21:50. Просмотров 507. Ответов 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);
        }
    };
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2015, 21:50     После анимации открывать другой layout
Посмотрите здесь:

4 кнопки и layout Android
Переход на другой layout через button Android
Android TextViews и Layout
Android layout 9 inch
Drawer Layout Android
Не хочет работать в layout, но включается в layout-land Android
Android At android.widget.LinearLayout.setChildFrame Layout в Layout-те
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
06.04.2015, 11:27     После анимации открывать другой layout #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) {
 
    }
});
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 13:15  [ТС]     После анимации открывать другой layout #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) {
            }
        });
    }
}
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
06.04.2015, 13:27     После анимации открывать другой layout #4
Цитата Сообщение от maksim94 Посмотреть сообщение
не подскажете, в чем может быть ошибка?
Я с мобильника, выложи лог хотя бы, не удобно код просматривать
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 13:40  [ТС]     После анимации открывать другой layout #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
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
06.04.2015, 13:42     После анимации открывать другой layout #6
Вы зачем-то наследовали интерфейс AnimationListener в Activity, но не реализовали его и не используете... Уберите эту строчку тогда:
Java
1
 implements AnimationListener
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 14:57  [ТС]     После анимации открывать другой layout #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) {
            }
        });
    }
}
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
06.04.2015, 15:16     После анимации открывать другой layout #8
maksim94, А если не убирать что выходит? Какая ошибка?
И пропишите в строчке
Java
1
Intent intent = new Intent(this, choose_language.class);
вместо this --> MainActivity.this
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
06.04.2015, 15:16     После анимации открывать другой layout #9
maksim94, посмотрите где вы инициализируете intent
Цитата Сообщение от maksim94 Посмотреть сообщение
Intent intent = new Intent(this, choose_language.class);
в метод его засуньте, там и контекст будет.
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
06.04.2015, 17:09  [ТС]     После анимации открывать другой layout #10
все работает, спасибо.
суть анимации в изменении прозрачности от 0 до 1 и обратно, то есть в итоге картинка исчезает. все проходит хорошо, но в конце, перед открытием нового layout, картинка вновь становится видимой буквально на секунду. как это исправить?
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
06.04.2015, 23:45     После анимации открывать другой layout #11
Цитата Сообщение от maksim94 Посмотреть сообщение
все работает, спасибо.
суть анимации в изменении прозрачности от 0 до 1 и обратно, то есть в итоге картинка исчезает. все проходит хорошо, но в конце, перед открытием нового layout, картинка вновь становится видимой буквально на секунду. как это исправить?
Java
1
choose_language
Нехорошо так классы называть
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
07.04.2015, 01:28  [ТС]     После анимации открывать другой layout #12
contedevel, название класса я сменил, но это никак не влияло, но повторное отображение картинки
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
07.04.2015, 01:31     После анимации открывать другой layout #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от maksim94 Посмотреть сообщение
contedevel, название класса я сменил, но это никак не влияло, но повторное отображение картинки
И не должно было

Добавлено через 1 минуту
Цитата Сообщение от maksim94 Посмотреть сообщение
картинка вновь становится видимой буквально на секунду. как это исправить?
В конце анимации
Java
1
2
img.setVisibility(View.INVISIBLE);
img.invalidate();
Добавлено через 34 секунды
Хотя, вроде, и в начале можно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 02:02     После анимации открывать другой layout
Еще ссылки по теме:

Android Добавить layout на layout
Android Имя layout
Android Перерисовка layout
Android переходы layout
Layout Android

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

Или воспользуйтесь поиском по форуму:
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
07.04.2015, 02:02  [ТС]     После анимации открывать другой layout #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 аее! все классно) спасибо, работает
Yandex
Объявления
07.04.2015, 02:02     После анимации открывать другой layout
Ответ Создать тему
Опции темы

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