Phonegap - 为 Android 应用添加启动画面

Posted

技术标签:

【中文标题】Phonegap - 为 Android 应用添加启动画面【英文标题】:Phonegap - add a splash screen for Android app 【发布时间】:2011-12-30 16:58:17 【问题描述】:

谁能告诉我如何在我的基于 html5 Phonegap 的 android 应用程序中添加启动画面。我只想让它在加载时显示 5 秒。另外 - 任何人都可以建议启动屏幕应该是什么尺寸。

【问题讨论】:

只是一个友好的建议,在任何情况下在移动应用程序上放置启动屏幕都不是一个好主意。这会让你的用户非常生气。 对不起,Kurtis,我不确定你在提倡什么。有许多非常流行的移动应用程序在加载时会显示启动画面,而不会给用户带来烦恼。 ios 甚至有一个专门为此目的而导致 Default.png 的图像。 @Devgeeks 我同意 Kurtis Nusbaum 的观点,因为您正在显示一个启动画面,这真是太棒了。如果您的应用程序需要很长时间才能启动,那么带有活动指示器的启动屏幕可能总比没有好,这可能是您正在谈论的流行应用程序的可能原因。否则,有相同(甚至更多)数量的流行移动应用程序不显示启动画面。基本上让用户尽可能快地使用应用程序。每次 5 秒的闪屏是个坏主意,因为从长远来看它会让用户感到沮丧。 请...不要这样做! Splashscreen 不是一个好主意 :) 是的,一些流行的应用程序有它,但这并不意味着这是一个好主意 ;) 我认为闪屏是品味/设计的问题。当然,大多数 UX 人会建议不要使用它,但我不同意他们; 1 秒的闪屏不会造成任何伤害,相反,它会为您的应用添加“个性”并设置“主题”,从而在数以千计的“引导式”应用中脱颖而出。在我的设备中,超过 70% 的日常使用的应用程序都有启动画面 :) 【参考方案1】:

为了在PhoneGap Android 应用程序中显示启动画面,您需要将splash.png 文件放入res/drawable-ldpires/drawable-mdpires/drawable-hdpires/drawable-xhdpi。这些目录代表每英寸的低、中、高和超大点。您需要为每个目录调整 splash.png 的大小(文件名在这里很重要),否则 Android 会为您拉伸它。

每张图片的尺寸应为:

xlarge (xhdpi):至少 960 x 720 大 (hdpi):至少 640 x 480 中等 (mdpi):至少 470 x 320 小 (ldpi):至少 426 x 320

然后在扩展 DroidGap 的主 Java 类中,您需要添加一行并修改另一行。先补充:

super.setIntegerProperty("splashscreen", R.drawable.splash);

此行应显示在super.onCreate 下但在super.loadUrl 之前。然后你需要修改你的 loadUrl 方法在加载主页之前暂停 5 秒。它看起来像这样:

super.loadUrl("file:///android_asset/www/index.html", 5000);

这应该为你做。

我最近对 ​​SplashScreen 在 PhoneGap Android 上的工作方式进行了一些更新。主应用程序现在在显示初始屏幕时加载。这比之前的阻塞启动屏幕调用有了很大的改进。 Read more about the changes on my blog.

【讨论】:

嗨,西蒙,我刚刚收到一条错误消息,指出“应用程序在执行上述操作时意外停止? PhoneGap 1.2 中使用 timeout 参数似乎有问题。另请参阅***.com/questions/8100219/… 如果我删除了 5 秒超时,应用程序会在加载时编译并短暂显示 - 所以看起来将上述内容与超时修复相结合将是一种享受。为您的帮助喝彩 要求用户等待 5 秒是很糟糕的建议。 @BallisticPugh 您想使用 9-patch 图像,这样您就可以控制拉伸的内容。【参考方案2】:

Phonegap (Apache Cordova) 文档在一处提供了有关启动屏幕和 Android 和 iOS 不同分辨率的足够详细信息。

http://docs.phonegap.com/en/2.2.0/cordova_splashscreen_splashscreen.md.html

【讨论】:

【参考方案3】:

在我的 Android 版 Phonegap 应用程序中,如果您在调用 loadUrl 之前设置了初始屏幕甚至“加载”对话框,Eclipse 调试器会发脾气。

两者都可以在设备上安装的实际应用中运行,但它们会破坏您的调试。因此,我将它们放在 loadUrl 后面,这样它们不会造成任何伤害,并且仍然可以很好地显示在应用程序本身之前。

public class App extends DroidGap 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html",5000);
    super.setStringProperty("loadingDialog", "Starting your app...");
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    ...
...

【讨论】:

【参考方案4】:

我在phonegap android中也遇到过这个问题..但现在我得到了解决方案。

super.setIntegerProperty("splashscreen", R.drawable.splash);(find image under drawable folder named splash,so put splash.png under drawable folder)
super.loadUrl("file:///android_asset/www/index.html",15000);(splash screen will show 15 sec.

请编辑您项目目录下 src 文件夹下的主 java 文件。

public class radiobiafra extends DroidGap

    @Override
    public void onCreate(Bundle savedInstanceState)
    
         super.onCreate(savedInstanceState);

         super.setIntegerProperty("splashscreen", R.drawable.splash);
         super.loadUrl("file:///android_asset/www/index.html",15000);
     

【讨论】:

这个一般可以找到:platforms/android/src/com/[your app name]/[Your App Name.java 我在上述路径中没有找到任何 .java 文件【参考方案5】:

这可能会满足您的需求。它让您可以在一个漂亮直观的界面中自定义和添加所有相关的 config.xml 设置、图像和闪屏。

我建议下载文件并手动安装。基于网络的空中安装程序似乎不起作用。

http://aj-software.com/configap/index.html

【讨论】:

【参考方案6】:

使用 Cordova >= 3.6,并使用 Cordova 命令行界面构建您的应用程序,可以从 config.xml 文件配置启动画面。这是 Android 的示例:

<platform name="android">
    <!-- you can use any density that exists in the Android project -->
    <splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
    <splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
    <splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
    <splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>

    <splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
    <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
    <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
    <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
<preference name="SplashScreenDelay" value="10000" />

还有一个dedicated plugin 以编程方式显示/隐藏启动画面。

请参阅Cordova documentation 了解更多信息。

【讨论】:

以上是关于Phonegap - 为 Android 应用添加启动画面的主要内容,如果未能解决你的问题,请参考以下文章

带有 Phonegap 的 Android 应用程序在横向旋转时崩溃

使用 Phonegap 将字母滚动条添加到 Android 应用程序中的列表视图

使用 PhoneGap Build 为 iOS 构建现有的 PhoneGap 项目

如何使用android studio在phonegap中添加facebook登录

如何在 phonegap 项目中添加应用程序图标?

为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)