如何执行我的 overridePendingTransition?
How to execute my overridePendingTransition?
注意:本主题末尾列出了类似的问题,您会看到我已经考虑了他们的回答和评论...但是没有任何效果。
我正在为我的 Android 应用程序开发启动画面。此初始屏幕位于主 activity 中,然后淡出。当它完成衰落时,主要 activity 开始另一个 activity.
问题
问题是主activity启动另一个没有显示淡出效果
配置
模拟器
模拟器使用这样配置的 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'
}
我写了什么来做这个褪色
我... :
创建了 MainActivity.java 并将 startActivity
和 overridePendingTransition
调用放入
在 AndroidManifest.xml 中创建了两个主题(一个用于主 activity,另一个用于另一个)。我在应用程序的主题中将 windowActivityTransitions
设置为 true
。
在 anim/fade_out_home_activity.xml 中为动画创建了样式(因此主要是 activity)。
创建了另一个 activity(包括新的 .java、新的 .xml 和清单的更新)。
我做了什么,详解
MainActivity.java
public class 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);
}
}
anim/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
等(Why the XML specified transition isn't executed? (or why its specified duration isn't taken account?) , the reason is in my (my!) first comment in OP here )。
我从这里得到了一些答案:overridePendingTransition not working。上面的代码中考虑到了这些。
我还按照此处答案中的建议添加了 ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
:Android: Activities animations not working .
没有任何效果,我快要疯了,浪费时间在两个活动之间做一个简单的动画!一开始,我也想在主 activity 启动时执行另一个动画,但我放弃了这个想法(有人告诉我这是不可能的 - 你可以在上面的链接中检索这个答案或评论)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new CountDownTimer(5000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
startActivity(new Intent(MainActivity.this, HomeActivity.class),
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}.start();
}
注意:本主题末尾列出了类似的问题,您会看到我已经考虑了他们的回答和评论...但是没有任何效果。
我正在为我的 Android 应用程序开发启动画面。此初始屏幕位于主 activity 中,然后淡出。当它完成衰落时,主要 activity 开始另一个 activity.
问题
问题是主activity启动另一个没有显示淡出效果
配置
模拟器
模拟器使用这样配置的 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'
}
我写了什么来做这个褪色
我... :
创建了 MainActivity.java 并将
startActivity
和overridePendingTransition
调用放入在 AndroidManifest.xml 中创建了两个主题(一个用于主 activity,另一个用于另一个)。我在应用程序的主题中将
windowActivityTransitions
设置为true
。在 anim/fade_out_home_activity.xml 中为动画创建了样式(因此主要是 activity)。
创建了另一个 activity(包括新的 .java、新的 .xml 和清单的更新)。
我做了什么,详解
MainActivity.java
public class 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);
}
}
anim/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
等(Why the XML specified transition isn't executed? (or why its specified duration isn't taken account?) , the reason is in my (my!) first comment in OP here
我从这里得到了一些答案:overridePendingTransition not working。上面的代码中考虑到了这些。
我还按照此处答案中的建议添加了 ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
:Android: Activities animations not working .
没有任何效果,我快要疯了,浪费时间在两个活动之间做一个简单的动画!一开始,我也想在主 activity 启动时执行另一个动画,但我放弃了这个想法(有人告诉我这是不可能的 - 你可以在上面的链接中检索这个答案或评论)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new CountDownTimer(5000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
startActivity(new Intent(MainActivity.this, HomeActivity.class),
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}.start();
}