4

私は最近Androidでアプリケーションの開発を開始しましたが、多くのチュートリアルでは、リソースの命名に大文字を使用すべきではないと述べています。何故ですか?また、.pngや.xmlなどの拡張子を付けることは許可されていません。button.pngとbutton.xmlの2つのファイルがある場合、アプリは2つのファイルをどのように区別しますか?

4

2 に答える 2

4
  1. リソースで大文字を許可しないのは、いくつかの規則に厳密に従うためです

  2. 同じリソース フォルダーで同じ名前の 2 つの異なる種類のリソースを使用することはできません。たとえば、drawable-hpdi に 2 つのリソース ファイルがあるとします。それらは a.png と a.xml です。ここで、コンパイラのコンパイル中にエラーが表示されます。ただし、a.png を drawable-hdpi に配置し、a.xml を drawable-mdpi に配置すると、これら 2 つのリソースが 2 つのまったく異なるデバイス タイプで使用されるため、エラーは表示されません。

もう 1 つの興味深い点は、a.png と a.xml を同じフォルダーで使用すると、a.xml が重複していることを示すエラーが表示されることです。ただし、同じフォルダーで a.jpg と a.png を使用すると、a.png が重複していることがわかります。そのため、ファイルタイプの優先順位はないと推測できます。コンパイラはトップダウン検索に従います。a.png は a.xml の上に配置されるため、コンパイラは最初に a.png を見つけ、次に同じ名前の xml ファイルを見つけるとエラーが表示されます。同じ理由で、a.jpg と a.png を使用すると、a.png でエラーが表示されます。

注: この回答は完全に私の観察に基づいています。これに関する書面によるドキュメントは見つかりませんでした。だから誰かが私の間違いを証拠で証明したら、それは高く評価されます

于 2013-03-10T11:01:06.530 に答える
1

リソース ファイルのファイル名の部分は、生成された Java ファイルでリソース ID を作成するために使用されるため
gen/<your-package-path>/R.java
、同じディレクトリ内で異なる拡張子を持つ同じリソース ファイル名を持つことはできません。

ビットマップ ファイルのリソース リファレンスで、リソース ファイル名の使用を参照してください。

リソース ID は Java 変数であるため、Java で提案されている変数の規則 ( Wikipedia Java の命名規則を参照) に従って名前を小文字で始めることをお勧めします。

于 2013-03-10T12:29:30.623 に答える