标签: splash-screen

Android:将可绘制对象添加到 styles.xml 时出现 Resources$NotFoundException

我有这个splash_screen.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
        android:gravity="center"
        android:src="@mipmap/ic_launcher"/>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

然后我想将其添加为<item>to styles.xml

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_screen</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但这会抛出:

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/splash_screen.xml from drawable resource ID #0x7f070099
Run Code Online (Sandbox Code Playgroud)

当我尝试时:

<item name="android:windowBackground">@color/colorPrimary</item>
Run Code Online (Sandbox Code Playgroud)

我的代码工作正常并以 colorPrimary 显示屏幕。

我该如何修复它?

我尝试重建、清理、重新启动 Android Studio 以及 SO 上的每一篇文章。没有任何帮助。

编辑

splash_screen.xml肯定是在drawable文件夹中。

在此输入图像描述

Android Studio 正在建议该文件。

我的绘图文件夹:

在此输入图像描述

android exception file splash-screen filenotfoundexception

3
推荐指数
1
解决办法
808
查看次数

Android 初始屏幕:缩放位图

我基本上将以下 xml 用于 Android启动屏幕:空活动windowBackground

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>
Run Code Online (Sandbox Code Playgroud)

background_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/defaultBackground" />
    </item>
    <item>
        <bitmap
            android:src="@drawable/logo"
            android:tileMode="disabled"
            android:gravity="center"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

只要logo.png小于屏幕尺寸,就可以正常工作。如果logo.png比屏幕大,它就会超出屏幕。

我看到了 3 种解决方法,但都有缺点:

  1. 设置left/ right<item但这需要 API 23+
  2. 因等而@drawable/logoxhdpixxhdpi但我使用的是密度分割,当为其他设备重用 apk 时(apk 网站、“移动到新设备”-传输 apk 的应用程序等),这会破坏它
  3. 使用带有 的布局ImageView,但这有明显的延迟

如何正确/没有缺点地做到这一点?

android splash-screen android-layout pixel-density screen-density

3
推荐指数
1
解决办法
2889
查看次数

IOS 初始屏幕正确渲染,然后元素跳转到顶部

所以我有以下启动画面:

在此输入图像描述

正常加载,但随后跳转到以下内容:

在此输入图像描述

我的约束如下:S 所以我认为我的元素受到了正确的约束,并且在检查 xcode 中的不同设备时一切看起来都不错。但是,一旦应用程序启动,它就会正确加载,但在加载下一个视图之前,所有内容都会跳到顶部。

<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina3_5" orientation="portrait" appearance="light"/>
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
    <!--View Controller-->
    <scene sceneID="EHf-IW-A2E">
        <objects>
            <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                <layoutGuides>
                    <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
                    <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
                </layoutGuides>
                <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleAspectFill" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
                            <rect …
Run Code Online (Sandbox Code Playgroud)

splash-screen storyboard ios xcode-storyboard swift

3
推荐指数
1
解决办法
1208
查看次数

启动画面颜色在 Flutter 中没有变化

我是 Flutter 新手,仍在练习中

我正在创建一个启动屏幕,但启动屏幕的颜色没有改变

我的代码:

-launch_background.xml

<?xml version="1.0" encoding="utf-8"?>
    <!-- Modify this file to customize your launch splash screen -->
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@android:color/black" />
    
        <!-- You can insert your own image assets here -->
        <!-- <item>
            <bitmap
                android:gravity="center"
                android:src="@mipmap/launch_image" />
        </item> -->
    </layer-list>
Run Code Online (Sandbox Code Playgroud)

-main.dart

import 'package:flutter/material.dart';
import 'package:id_locker/Screens/HomeScreen.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomeScreen(),
    ); …
Run Code Online (Sandbox Code Playgroud)

splash-screen dart flutter flutter-layout flutter-android

3
推荐指数
1
解决办法
3438
查看次数

如何为 Wear OS 3 应用程序创建类似于“大”应用程序的启动屏幕?

我正在寻找一种可能性,使我的 Wear OS 3 应用程序具有简单的启动屏幕。我找不到任何具体内容,但我读到 Android 12 为每个应用程序引入了自动启动屏幕。不知道这是否适用于 Wear OS 3。

我可以在 Galaxy Watch 4 上看到多个应用程序(例如 Spotify 和 Strava),并以类似的启动画面开始:单击“应用程序抽屉”中的应用程序图标,该图标会从应用程序抽屉位置移动到中心 1- 2 秒后出现黑色背景。之后将显示该应用程序。我的猜测是那些闪屏是由 Android 生成的。但我的应用程序仅显示黑屏,直到应用程序首次绘制。我通过 OnCreate 中的 Thread.sleep 人为地延迟了应用程序的启动。(如果这是一个问题,请告诉我如何人为地创建延迟来测试闪屏)

如果还不清楚:我希望我的应用程序拥有与其他应用程序相同类型的启动屏幕。

非常感谢帮助!预先感谢您的任何建议

android splash-screen wear-os

3
推荐指数
1
解决办法
1326
查看次数

Flutter 如何仅在加载颤振数据时显示启动屏幕

当应用程序的启动屏幕显示时,它需要从 FTP 服务器下载文件并处理数据。实现了颤动的启动屏幕

class Home extends StatelessWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {

    return FutureBuilder(
      future: Future.delayed(Duration(seconds: 3)),
      builder: (BuildContext context, AsyncSnapshot snapshot){
        if(snapshot.connectionState == ConnectionState.waiting)
          return SplashUI();    ///Splash Screen
        else
          return MainUI();       ///Main Screen
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,延迟 3 秒后,启动屏幕将显示 3 秒,在此期间从 FTP 下载文件并处理数据。我想保留启动屏幕直到数据处理完成而不是指定的时间。

启动画面


Widget _splashUI(Size size){
    return SafeArea(
      child: Center(
        child: Container(
          width: size.width * 0.5,
          height: size.height * 0.1,
          child: Image(
            fit: BoxFit.fill,
            image: AssetImage('assets/images/elf_logo.png'),
          ),
        ),
      ),
    ); …
Run Code Online (Sandbox Code Playgroud)

splash-screen dart flutter

3
推荐指数
2
解决办法
8202
查看次数

Android 12 上的 React Native 启动画面

我正在使用react-native-splash-screen库从 iOS 和 Android 上的图像在应用程序中制作自定义启动屏幕。

然而,谷歌在 Android 12 中引入了新的启动屏幕方法,这会导致启动屏幕重复、缺乏自定义以及需要迁移到删除旧屏幕的新实现等问题。

我喜欢我的旧启动画面,不想删除它,而且我看到 Instagram 应用程序(也在 React Native 上)似乎使用的不是 Android 12 原生启动画面,而是自定义启动画面,所以绝对应该是实现这一目标的一种方式。

那么,我怎样才能让我的自定义实现准确地保持不变,而不出现任何性能问题,并且能够像以前一样使用全屏图像呢?

android splash-screen react-native android-12

3
推荐指数
1
解决办法
6956
查看次数

为纵向和横向模式设置启动图像 - iPad

我的资源文件夹中有两个图像Default-Portrait.pngDefault-Landscape.png.我想在相应的方向模式下将它们设置为我的应用程序的初始图像.但是当我运行应用程序时,我无法看到任何闪屏.
我可能错过了什么?

尼蒂什

iphone splash-screen ipad

2
推荐指数
1
解决办法
1992
查看次数

在Phonegap应用程序启动过程中的splashscreen

在我的Phonegap/Cordova应用程序启动期间,我得到一个黑屏3秒钟,然后webview变为现实.在这3秒黑色期间是否可以设置原生闪屏?

android native splash-screen cordova

2
推荐指数
1
解决办法
4742
查看次数

Splash Image for android

我制作了一个启动图像,以便在我的活动开始时显示..图像显示完美.但问题是我称之为

public class SplashImageActivity extends Activity {
    protected boolean active = true;
    protected int splashTime = 5000; // time to display the splash screen in ms

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        // thread for displaying the SplashScreen
        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    int waited = 0;
                    while(active && (waited < splashTime)) {
                        sleep(100);
                        if(active) {
                            waited += 100;
                        }
                    } …
Run Code Online (Sandbox Code Playgroud)

android splash-screen

2
推荐指数
1
解决办法
383
查看次数