Kar*_*i17 18 android android-activity
我目前正在开发Android应用程序,我的启动活动存在一些问题.我希望我的主要活动从我的飞溅活动淡入,而不是从黑屏.我的启动和主要活动都使用相同的背景图像,所以如果我做一个fade_in/fade_out组合,它看起来很奇怪,因为在转换过程中背景类型会稍微消失.
这里的想法是我必须使用我的徽标版本:正常和发光.我希望我的主要活动淡入,所以我的发光徽标覆盖了我的正常徽标,导致整洁的小"开启"效果.以下代码从黑屏中消失,这是不理想的.
/**
* Pause Activity
*/
@Override
protected void onPause()
{
super.onPause();
finish();
overridePendingTransition(android.R.anim.fade_in, 0);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
创建我自己的fade_out动画以保持1.0 alpha级别(从1.0到1.0)并添加android:fillAfter="true"到我的初始动画集修复了问题.
Lum*_*mis 37
这是关于事物的顺序.这是一个在3秒后淡入下一个活动的例子:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//Create an intent that will start the main activity.
Intent mainIntent = new Intent(SplashActivity.this, MainMenuActivity.class);
SplashActivity.this.startActivity(mainIntent);
//Finish splash activity so user cant go back to it.
SplashActivity.this.finish();
//Apply splash exit (fade out) and main entry (fade in) animation transitions.
overridePendingTransition(R.anim.mainfadein, R.anim.splashfadeout);
}
}, 3000);
Run Code Online (Sandbox Code Playgroud)
请注意,这里有两个动画淡入淡出.
mainfadein.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="700" />
Run Code Online (Sandbox Code Playgroud)
splashfadeout.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="700" />
Run Code Online (Sandbox Code Playgroud)
Tai*_*aig 30
我建议不要使用经典的交叉淡入淡出,而是在没有动画的情况下显示新的Activity,然后淡出当前的Activity.这看起来和感觉更清晰,并解决了一些小问题,当您在动画开始时从后台打开应用程序时,您可以看到启动器/底层应用程序.
my_splash_fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="750"
android:fromAlpha="1.0"
android:interpolator="@android:interpolator/accelerate_cubic"
android:startOffset="250"
android:toAlpha="0.0"
android:zAdjustment="top" />
Run Code Online (Sandbox Code Playgroud)
我正在添加一个startOffset这里给新创建的Activity一点开头,因为它相当沉重.
MySplashActivity.java
...
startActivity( ... );
finish();
overridePendingTransition( 0, R.anim.screen_splash_fade_out );
Run Code Online (Sandbox Code Playgroud)
预习
| 归档时间: |
|
| 查看次数: |
22204 次 |
| 最近记录: |