xml 中定义的 SplashScreen 方法(没有 activity)不会出现
SplashScreen approach defined in xml (without activity) does not appear
我已经像许多其他没有外部的启动画面一样定义了启动画面 activity,但它对我不起作用,我不明白为什么。
图片有限制吗?还尝试了许多其他图像
这是我的 splash.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item>
<bitmap
android:gravity="center"
android:src="@drawable/splash_logo" />
</item>
</layer-list>
此处 splash.xml 文件在 android 工作室中的预览看起来非常完美。
比我创造的那样的风格
<style name="AppTheme.Launcher">
<item name="android:windowBackground">@drawable/splash</item>
</style>
并将其分配给清单中的 activity 主题
<activity
android:theme="@style/AppTheme.Launcher"
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是我的 activity 的
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
加载 activity 时,显示空白屏幕而不是图像,可能持续一秒钟。我搜索了这种方法,似乎与其他方法相同。不明白怎么回事
编辑:
我已经在另一台设备 OS 5.0 上对其进行了测试并且它可以工作,但是对于 6.0 则没有
编辑
从您的 activity
中删除它
setTheme(R.style.AppTheme)
试试这个
Style.xml
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item>
</style>
splash_background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimary" />
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher" />
</item>
</layer-list>
SplashActivity
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
startActivity(new Intent(SplashActivity.this, MainActivity.class));
// close splash activity
finish();
}
}
清单
<activity android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这应该是评论。但我不能发表评论。我遇到了同样的问题。请检查您的图像尺寸。尝试压缩图像并重试它可能对您有所帮助。请告诉我。
我已经像许多其他没有外部的启动画面一样定义了启动画面 activity,但它对我不起作用,我不明白为什么。
图片有限制吗?还尝试了许多其他图像 这是我的 splash.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item>
<bitmap
android:gravity="center"
android:src="@drawable/splash_logo" />
</item>
</layer-list>
此处 splash.xml 文件在 android 工作室中的预览看起来非常完美。 比我创造的那样的风格
<style name="AppTheme.Launcher">
<item name="android:windowBackground">@drawable/splash</item>
</style>
并将其分配给清单中的 activity 主题
<activity
android:theme="@style/AppTheme.Launcher"
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是我的 activity 的
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
加载 activity 时,显示空白屏幕而不是图像,可能持续一秒钟。我搜索了这种方法,似乎与其他方法相同。不明白怎么回事
编辑: 我已经在另一台设备 OS 5.0 上对其进行了测试并且它可以工作,但是对于 6.0 则没有
编辑
从您的 activity
中删除它setTheme(R.style.AppTheme)
试试这个
Style.xml
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item>
</style>
splash_background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimary" />
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher" />
</item>
</layer-list>
SplashActivity
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
startActivity(new Intent(SplashActivity.this, MainActivity.class));
// close splash activity
finish();
}
}
清单
<activity android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这应该是评论。但我不能发表评论。我遇到了同样的问题。请检查您的图像尺寸。尝试压缩图像并重试它可能对您有所帮助。请告诉我。