Cordova/PhoneGap 9-patch启动画面

4

我有一张9-patch图片(splash.9.png),我想将它用作我的Cordova(3.4.0)应用程序闪屏。如果我在Eclipse中运行(Cordova)Android项目,一切都正常,即闪屏出现且仅拉伸可拉伸区域。然而,如果我使用命令行界面运行应用程序,则整个闪屏都会被拉伸/变形,好像Cordova并不认为它是一个9-patch图像,而是一个普通的.png文件。在我的config.xml中,我已经指定了以下内容:

<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="5000" />

还有需要设置的吗?还有其他线索吗?提前感谢!


我在寻找相同答案的过程中发现了你的问题。我的情况与你完全一样。如果我找到了答案(呵呵,如果我找到了答案),我会在你的问题下发布它。 - Michael
显然这是一个已知的问题。在此处找到它: https://github.com/phonegap/build/issues/20 - Michael
你有没有找到这个问题的答案?我也遇到了同样的问题! - M_Becker
@user2063032 不是的,我只有在想要一个没有扭曲的启动画面时才被迫通过Eclipse部署我的应用程序。 - white_pawn
我成功地使用远程Cordova 3.4.0和9-patch图像构建了我的应用程序。请注意,扩展名应为.9.png,例如mdpi.9.png - Demiurg
1
@Demiurg 我在谈论一个本地的 Cordova 实例。此外,如果您再次阅读原始问题描述,您还将看到我的 9-patch 图像的名称(和扩展名)(在第一句话中)。 - white_pawn
2个回答

4

好的,这个问题与您的9patch图像的可伸缩区域有关。我通过在github上提问得到了答案。一个用户将我引导到另一个讨论中,那里有人已经破解了它。

主要问题是,大多数9patch教程都解释了如何拉伸按钮,但没有详细说明如何居中图像。

在讨论中部分位置找到绿色/蓝色/红色的图片。

http://community.phonegap.com/nitobi/topics/stretched_9_patch_splash_screens_android

Wayback副本: http://web.archive.org/web/20160405060404/http://community.phonegap.com/nitobi/topics/stretched_9_patch_splash_screens_android

对我来说,关键是观察边缘。这真的很难看出来(至少对我来说),但你可以在边缘上勉强看到定义可伸缩区域的黑色标记。顶部有2个小区域(在绿色上),左侧有2个小区域(在绿色上),底部有一个长区域(在蓝色上),右侧有一个长区域(在蓝色上)。

此外,提供了一些XML,以允许在垂直和水平方向上使用单个图像。

因此,我发现这张图片(尽管很难看出线条)比我看过的所有教程都更好地说明了9patch的工作原理。


就像我说的,当我从Eclipse运行应用程序时,我的9-patch .png是正常工作的(可拉伸区域,不可拉伸的标志和所有内容),因此我非常确定实际图像没有问题(draw9patch工具也建议一切正常)。但是,如果我从CLI运行它,则启动屏幕根本不被视为9-patch图像(我甚至可以在手机屏幕上看到黑线,并且整个.png,包括徽标,都被拉伸)。 - white_pawn
这些链接是404,听起来它们本来会很有帮助。我认为最好的做法是实际解释解决方案,而不是链接跳转... - Michael
时光机来拯救了!我正在更新答案以反映wayback URL。给我30秒钟。 - Michael
对我来说,关键是9patch图像需要是正方形的,如果您只为每个密度提供一个图像-即使用density =“hdpi”而不是density =“land-hdpi”。一旦我使用了正方形的9patch图像,cordova就不再拉伸横向的图像了。http://web.archive.org/web/20160405060404/http://community.phonegap.com/nitobi/topics/stretched_9_patch_splash_screens_android - Allan Nienhuis

3

看起来你需要将图片命名为splash.9.png(并在下次构建之前运行platform/android/cordova/clean)。这对我来说有效。


它对我也有效。在进行大量搜索后,此答案和http://community.phonegap.com/nitobi/topics/stretched_9_patch_splash_screens_android#reply_13888005帮助我修复了闪屏。 - Geordee Naliyath
1
CLI 的清理别名是 cordova clean android - daserge

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