web-dev-qa-db-ja.com

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にありません。

15
Jose Granja

編集:

Cordova CLI 7.x.x以降、cordova-Android 6.2.xまたはcordova-ios 4.4.xを使用する場合、プラグインに対する以前の回答で説明したように、config.xmlのresource-fileタグを使用できます。プラットフォームタグ内に配置する必要があります。

例:

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

または、画像を好きな場所にコピーするフックを使用できます

18
jcesarmobile

私のような次の人々のために、これを行うための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/に入れてください。そうすれば準備完了です。

3
sinedied