Phonegap 启动画面方向问题

3

当为PhoneGap应用程序设置闪屏时,即使我制作了一个带有标志的大图片,图片也会被拉伸到整个屏幕上。理想情况下,我希望图片只在中心位置,背景为黑色或白色。如何配置闪屏的行为?

3个回答

12

有一个更好的解决方案可用:将以下splash.xml放置在res / drawable中(修改android:src属性),并更改对R.drawable.splash的引用,以在setIntegerProperty()调用中使用。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
  android:src="@drawable/splashImage"
  android:gravity="center_horizontal|center_vertical" />

请查看我的博客,以获得更详细的设置说明。


1
我无法让它工作。将splash.bmp和splash.xml放入res/drawable-xhdpi中,然后将super.setIntegerProperty("splashscreen", R.drawable.splash);放入my_app.java文件中。 - Nathan Waters
1
确保不要将位图命名为splash,而是另起一个名称(如splashImage.bmp)。同时将该文件的副本放入res/drawable中。您可能还想将文件转换为.png以节省一些空间。 - Florian
不要在文件名中使用大写字母,这样不起作用,请使用splashimage.bmp。 - Frank
我也遇到了这个问题。我的Android应用最初使用保存在/drawable-port-xhdpi/splash.png/drawable-port-mdpi/splash.png/drawable-port-ldpi/splash.png/drawable-port-hdpi/splash.png中的PNG文件。我尝试通过将新的splash.xml放置在drawable目录中来引用它,但是那样不起作用。所以,我不得不创建一个splash.xml文件来替换每个splash.png文件,然后在每个目录中将splash.png重命名为splashimage.png(请注意小写字母的注释)。希望这能帮助大家。 - Ian Jamieson

3
我刚刚根据启动时的当前方向设置了闪屏,虽然不是完美的,但它可以工作。您还可以在方向更改时添加相同的效果,但是在闪屏启动期间更改方向的可能性很小。请注意保留所有 HTML 标记。
int ot = getResources().getConfiguration().orientation;

        if (ot == 2) {
            super.setIntegerProperty("splashscreen", R.drawable.splashlandscape);
            Log.d("Orientation", "Landscape");
        }
        else {
            super.setIntegerProperty("splashscreen", R.drawable.splashportrait);
            Log.d("Orientation", "Portrait");
        }

经过多次搜索,这是 Cordova 2.0 的唯一真正解决方案。 - Martin Borthiry
我很惊讶同样的解决方案也适用于那里,这段代码来自PhoneGap 1.0。我还没有尝试过新版本,所以我不知道现在是否有更好的解决方案。 - Caimen

0

这是一个解决方案,但它有缺陷。

将您的splash.png放入各种drawable文件夹中。

res/drawable/splash.png (480wx800h portrait version)
res/drawable-land/splash.png (800wx480h landscape version)

这种方法的已知问题是,如果在加载后更改方向,则不会更新背景...(这对于PhoneGap 1.10是正确的)


之前尝试过,但在加载时更改方向时出现了所描述的问题。 - Demonick

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