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

84

请问有人能指导我如何在基于HTML5 Phonegap的Android应用程序中添加启动画面。我只希望它在加载时显示5秒钟。还有 - 有人能告诉我启动画面应该是什么尺寸吗。


2
只是一个友好的建议,在任何情况下都不要在移动应用程序上放置启动画面,这会让你的用户非常生气。 - Kurtis Nusbaum
37
抱歉 Kurtis,我不确定你在倡导什么。有许多非常受欢迎的移动应用程序,在加载时显示闪屏画面,而不会引起用户的烦恼。iOS甚至专门为这个目的准备了一个名为Default.png的图像。 - Devgeeks
6
我同意Kurtis Nusbaum的观点,如果您只是随便显示一个启动画面,那么最好不要使用它。如果您的应用程序启动需要很长时间,那么带有活动指示器的启动画面可能比没有更好,这也是您所提到的热门应用程序的主要原因。否则,同样有很多受欢迎的移动应用程序不会显示启动画面。基本上,尽快让用户进入应用程序是最重要的。每次都出现5秒钟的启动画面是个坏主意,因为长期来看会让用户感到沮丧。 - Kinjal Dixit
1
请不要这样做!启动画面不是一个好主意 :) 虽然一些流行的应用程序有它,但这并不意味着这是一个好主意 ;) - Štěpán Víteček
1
我认为启动画面是一种品味和设计问题。当然,大多数用户体验专家会建议不要使用它,但我不同意他们;一个1秒的启动画面不会造成任何伤害,相反,它会为您的应用程序增添“个性”并设置一个“主题”,使其在成千上万的“引导式”应用程序中脱颖而出。在我的设备上,超过70%的日常使用应用程序都有启动画面 :) - numediaweb
我已经回答过另一个相同的问题。你可以查看以下答案:https://dev59.com/_GYr5IYBdhLWcg3wq7-I#27125893 - efkan
6个回答

176
为了在PhoneGap Android应用中拥有启动画面,您需要将您的`splash.png`文件放入`res/drawable-ldpi`、`res/drawable-mdpi`、`res/drawable-hdpi`、`res/drawable-xhdpi`这些目录中。这些目录分别代表低、中、高和超大像素密度。您需要为每个目录调整`splash.png`的大小(文件名很重要),否则Android会对其进行拉伸。
每个图像的尺寸应该为:
  • xlarge (xhdpi):至少960 x 720
  • large (hdpi):至少640 x 480
  • medium (mdpi):至少470 x 320
  • small (ldpi):至少426 x 320
然后在您的主Java类(扩展DroidGap的那个类)中,您需要添加一行代码并修改另一行。首先添加代码:
super.setIntegerProperty("splashscreen", R.drawable.splash);

这行文字应该出现在super.onCreate但在super.loadUrl之前。然后您需要修改loadUrl方法,在加载主页面之前暂停5秒钟。代码如下:

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

那应该适合你了。

我最近更新了PhoneGap Android版的启动画面工作方式。现在主应用程序会在显示闪屏界面时加载。这比之前的阻塞闪屏调用要好得多。在我的博客上阅读更多有关这些更改的信息


1
嗨Simon,我刚刚在实现上述内容时遇到了一个错误,提示“应用程序意外停止”。 - Dancer
2
在PhoneGap 1.2中使用超时参数似乎存在问题。请参见https://dev59.com/IF3Ua4cB1Zd3GeqP9ydt#8101460。 - Paul Beusterien
1
如果我移除5秒的超时,应用程序可以编译并在加载时短暂显示 - 因此似乎以上的组合加上超时修复会起作用.. 感谢您的帮助。 - Dancer
6
要求用户等待5秒钟是糟糕的建议。 - grahamparks
1
@BallisticPugh 你想使用9-patch图像,这样你就可以控制什么被拉伸。 - Simon MacDonald
显示剩余13条评论

6

3
在我的Phonegap应用中,Android版本的Eclipse调试器会在调用loadUrl之前设置闪屏或甚至'loading'对话框时抛出异常。
这两个功能在实际安装在设备上的应用程序中都可以工作,但它们会破坏你的调试。因此,我将它们放在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);
    ...
}...

3

我也曾在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);
     }
}

1
通常可以在以下位置找到:platforms/android/src/com/[你的应用程序名称]/[你的应用程序名称.java] - Ian Jamieson
我在上述路径中没有找到任何 .java 文件。 - Prak

0

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

我建议下载文件并手动安装。基于Web的Air安装程序似乎无法正常工作。

https://aj-software.com/apps/configap.html


0

使用 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" />

还有一个专用插件可以编程地显示/隐藏启动画面。

更多信息请参阅Cordova文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接