phonegap-Android应用程序的启动屏幕


84

有人可以建议我如何在基于HTML5 Phonegap的Android应用中添加启动屏幕。我只希望它在加载时显示5秒钟。另外-任何人都可以建议初始屏幕的尺寸。


2
只是一个友好的建议,在任何情况下都不要在移动应用程序上放置闪屏。这会让您的用户非常生气。
Kurtis Nusbaum

37
很抱歉,Kurtis,我不确定您在倡导什么。有许多非常流行的移动应用程序在加载时显示启动屏幕,而不会引起用户的烦恼。iOS甚至有专门为此目的导致Default.png的图像。
Devgeeks 2011年

6
@Devgeeks我同意Kurtis Nusbaum的情况,在这种情况下,您将显示启动画面。如果您的应用程序需要很长时间才能启动,则带有活动指示器的初始屏幕可能总比没有好,这可能是您正在谈论的流行应用程序的原因。否则,不显示启动画面的流行移动应用程序数量将相同(甚至更多)。基本上,使用户尽快进入应用程序。每次使用5秒钟的启动屏幕是一个坏主意,因为从长远来看,它将使用户感到沮丧。
Kinjal Dixit 2012年

1
拜托...不要这样做!Splashscreen不是一个好主意:)是的,一些受欢迎的应用程序都拥有它,但这并不意味着那是个好主意;)
ŠtěpánVíteček2013年

1
我认为初始屏幕是口味/设计的问题。当然,大多数UX用户会建议不要使用它,但是我不同意。1秒的启动画面不会造成任何伤害,相反,它将为您的应用程序添加一个“个性”并设置一个“主题”,从而使成千上万的“自举”应用程序脱颖而出。在我的设备中,超过70%的日常使用的应用都有启动屏幕:)
numediaweb 2013年

Answers:


176

为了有一个你需要把你的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

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

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

这条线应该在super.onCreate但之前出现super.loadUrl。然后,您需要将loadUrl方法修改为暂停5秒,然后再加载主页。它看起来像这样:

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

那应该为你做。

我最近对SplashScreen在PhoneGap Android上的工作方式进行了一些更新。现在,在显示初始屏幕时,将加载主应用程序。与以前的阻止初始屏幕调用相比,这是一个很大的改进。在我的博客上了解有关更改的更多信息


1
嗨,西蒙,我刚得到一个错误,指出“实施以上操作时应用程序意外停止了?
舞者

2
在PhoneGap 1.2中使用timeout参数似乎存在问题。另请参见stackoverflow.com/questions/8100219/...
保罗Beusterien

1
如果我删除5秒超时,则应用会编译并在加载时短暂显示-因此,将以上内容与超时修复结合使用似乎可以解决问题。.助您一臂之力
Dancer

6
要求用户等待5秒钟是可怕的建议。
grahamparks 2012年

1
@BallisticPugh您想使用9补丁图像,以便可以控制拉伸的图像。
西蒙·麦克唐纳


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);
    ...
}...

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/[your app name]/[Your App Name.java
Ian Jamieson 2014年

我在上述路径中找不到任何.java文件
Prak

0

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

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

http://aj-software.com/configap/index.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文档

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.