【问题标题】:Adding drawable resource using Cordova使用 Cordova 添加可绘制资源
【发布时间】:2016-06-01 09:49:02
【问题描述】:

我想在我的 cordova 项目中添加一个可绘制资源。我确实添加了图标和启动画面项目就好了。它们被复制到我的平台/android/res/drawable 就好了。问题是当我尝试添加另一个资源时。我怎么做?我在科尔多瓦上找不到任何东西,而不是图标和闪屏

<platform name="android">
<icon src="xx.png" density="ldpi"/>
<icon src="xx.png" density="mdpi"/>
<icon src="xx.png" density="hdpi"/>
<icon src="xx.png" density="xhdpi"/>
<icon src="xx.png" density="xxhdpi"/>
<icon src="xx.png" density="xxxhdpi"/>
<splash src="xx.png" density="ldpi"/>
<splash src="xx.png" density="mdpi"/>
<splash src="xx.png" density="hdpi"/>
<splash src="xx.png" density="xhdpi"/>
<splash src="xx.png" density="xxhdpi"/>
<splash src="xx.png" density="xxxhdpi"/>

有人可以帮忙吗?我在 config.xml 中没有看到任何添加其他可绘制资源的选项。

【问题讨论】:

  • 您能回答您自己的问题并描述“挂钩”解决方案吗?我不确定如何实现它并且与您的原始帖子有相同的问题。

标签: android cordova ionic-framework phonegap-plugins


【解决方案1】:

编辑:

从 Cordova CLI 7.x.x 开始,当使用 cordova-android 6.2.x 或 cordova-ios 4.4.x 时,您可以使用 config.xml 中的资源文件标记,正如我在插件的旧答案中所解释的那样。你必须把它放在平台标签内。

例子:

<platform name="android">
  <resource-file src="www/res/drawable-hdpi/yourImage.png" target="res/drawable-hdpi/yourImage.png" />
</platform>

src 是您现在拥有图像的位置,可以在我的示例中的 www 中,如果您不希望文件重复,甚至可以在项目的根目录中。 target 是目的地,它将位于 yourProject/platforms/platform/target 例如,它将是yourProject/platforms/android/res/drawable-hdpi/yourImage.png

旧答案:

从 config.xml 你只能添加图标和启动图像

如果你想添加资源,你可以创建一个插件并使用resource-file 标签

<resource-file src="src/android/res/drawable-hdpi/yourImage.png" target="res/drawable-hdpi/yourImage.png" />

或者您可以使用挂钩将图像复制到您想要的任何位置

【讨论】:

  • 我选择了钩子选项。看起来更干净,并且在 gulpfile 中有所有逻辑
  • 请多解释,太模糊了
  • 对于插件阅读cordova.apache.org/docs/en/latest/plugin_ref/…,对于钩子,请参阅sinedied回答
  • @jcesarmobile 这对我来说适用于 Cordova CLI 6.5.0 和 cordova-android 6.3.x :thumbsup:
  • 啊,那么可能cordova-android 6.2.0或更高版本就足够了
【解决方案2】:

对于像我这样的下一个人,这是我的简单钩子,输入hooks/before_build/020_copy_resources.js

#!/usr/bin/env node

// Copy native resources
var rootdir = process.argv[2];
var exec = require('child_process').exec;

// Native resources to copy
var androidNativePath = 'native/android/';

// Android platform resource path
var androidResPath = 'platforms/android/res/';

function copyAndroidResources() {
  exec('cp -Rf ' + androidNativePath + '* ' + androidResPath);
  process.stdout.write('Copied android native resources');
}

if (rootdir) {
  copyAndroidResources();
}

只需将您的 android 资源放入 native/android/ 即可。

【讨论】:

  • 这很神奇,但请确保您遵循 native/android/ 中文件的 res 文件夹的子文件夹命名约定。
猜你喜欢
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 1970-01-01
  • 2014-02-05
相关资源
最近更新 更多