Примечание: подобные вопросы перечислены в конце этой темы, и вы увидите, что я учел их ответы и комментарии ... Однако ничего не работает.
Я разрабатываю заставку для своего приложения для Android. Этот экран-заставка в основном действии, и исчезает. Когда оно заканчивается, основное действие начинает другое действие.
проблема
Проблема в том, что основное действие запускает другое без эффекта затухания.
Конфигурация
Emulator
Эмулятор использует AVD, сконфигурированный так: уровень API - 27, Android - 8.1 Oreo.
build.gradle (Модуль: приложение)
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.."
minSdkVersion 27
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
renderscriptTargetApi 27
renderscriptSupportModeEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Что я написал, чтобы сделать это исчезающим
I ...:
Создано MainActivity.java и помещены вызовы startActivity
и overridePendingTransition
внутри
Создано две темы в AndroidManifest.xml (одна для основной деятельности, другая для другой). Я установил windowActivityTransitions
на true
в теме приложения.
Создан стиль в anim / fade_out_home_activity.xml для анимации (таким образом, для основного действия).
Создано другое действие (включая новый .java, новый .xml и обновление манифеста).
Что я сделал, подробно
MainActivity.java
открытый класс MainActivity расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(this, HomeActivity.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
finish();
overridePendingTransition(R.anim.fade_out_home_activity, R.anim.fade_out_home_activity);
setContentView(R.layout.activity_main);
}
}
аним / fade_out_home_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_quad"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_longAnimTime"/>
(вероятно, бесполезно для справки) styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActivityTransitions">true</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
Мой вопрос
Знаете ли вы, почему анимация не отображается (обратите внимание, что, возможно, она выполнена - или нет)?
Похожие вопросы
Я уже создал несколько тем о том, как реализовать анимацию заставки. Обратите внимание, что я не хочу использовать setEnterTransition
и т. Д. ( Почему указанный переход XML не выполнен? (Или почему его указанная продолжительность не учитывается?) , причина в моем (мой!) первый комментарий в OP здесь Как скрыть пользовательский интерфейс действия и исчезнуть в пользовательском интерфейсе другого действия? ).
Отсюда я получил несколько ответов: overridePendingTransition не работает . Они учтены в приведенном выше коде.
Я также добавил ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
, как предлагается в ответе здесь: Android: анимация действий не работает .
Ничего не работает, я так схожу с ума, что потратил время на простую анимацию между двумя действиями! Вначале я также хотел выполнить другую анимацию, когда началось основное действие, но я отказался от идеи (кто-то сказал мне, что это невозможно - вы можете получить этот ответ или комментарий по ссылкам выше).