1page.title=リソースの概要 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 <h2>トピック</h2> 7 <ol> 8 <li><a href="providing-resources.html">リソースの提供</a></li> 9 <li><a href="accessing-resources.html">リソースへのアクセス</a></li> 10 <li><a href="runtime-changes.html">実行時の変更の処理</a></li> 11 <li><a href="localization.html">Localization</a></li> 12 </ol> 13 14 <h2>リファレンス</h2> 15 <ol> 16 <li><a href="available-resources.html">Resource Types</a></li> 17 </ol> 18</div> 19</div> 20 21 22<p>画像や文字列といったリソースは、常にアプリケーション コードの外部に置くようにすることで、独立して保持できるようになります。 23さらに、リソースを外部化することで、言語や画面サイズが異なるような特定の端末構成をサポートする代替リソースを提供できるようになります。異なる構成を持つ Android ベースの端末が増えていることから、この外部化がますます重要になってきています。 24 25 26異なる構成に互換性を持たせるには、リソースをタイプや構成ごとにグループ化するさまざまなサブディレクトリを使用して、プロジェクトの {@code res/} ディレクトリ内にリソースを整理する必要があります。 27 28 29</p> 30 31<div class="figure" style="width:429px"> 32<img src="{@docRoot}images/resources/resource_devices_diagram1.png" height="167" alt="" /> 33<p class="img-caption"> 34<strong>図 1.</strong> デフォルト レイアウトを使用する 2 つの異なる端末(アプリによる代替レイアウトの提供なし)。 35</p> 36</div> 37 38<div class="figure" style="width:429px"> 39<img src="{@docRoot}images/resources/resource_devices_diagram2.png" height="167" alt="" /> 40<p class="img-caption"> 41<strong>図 2.</strong> 画面サイズが違うレイアウトを使用する 2 つの異なる端末 42</p> 43</div> 44 45<p>すべてのリソースタイプに対して、アプリケーションの<em>デフォルト</em> レイアウトと複数の<em>代替</em>リソースを指定できます。 46</p> 47<ul> 48 <li>デフォルト リソースは、端末構成に関係なく使われるものであり、現在の構成に一致する代替リソースがない場合に使用されます。 49 50</li> 51 <li>代替リソースは、特定の構成で使うために作成したリソースです。 52リソースのグループを特定の構成に使用するよう指定するには、適切な構成修飾子をディレクトリ名の後ろに追加します。 53</li> 54</ul> 55 56<p>たとえば、デフォルトの UI レイアウトが {@code res/layout/} ディレクトリに保存してある場合、{@code res/layout-land/} ディレクトリにレイアウトを保存しておくことで、横向きの画面を使用する際の別のレイアウトを指定できます。 57 58 59Android は、現在の端末の構成とリソースのディレクトリ名をマッチングさせ、適切なリソースを自動的に適用します。 60</p> 61 62<p>図 1 は、代替リソースがない場合に、システムが 2 つの異なる端末に同じレイアウトを適用する様子を表しています。 63図 2 は、大きい画面の代替レイアウト リソースを追加した場合の、レイアウトの適用の様子を表しています。 64</p> 65 66<p>次のドキュメントには、アプリケーション リソースの整理、代替リソースの指定、アプリケーションでのアクセスなどに関する情報が詳細に記載されています。 67</p> 68 69<dl> 70 <dt><strong><a href="providing-resources.html">リソースの提供</a></strong></dt> 71 <dd>アプリで提供可能なリソースの種類、保存場所、特定の端末構成用の代替リソースの作成方法。 72</dd> 73 <dt><strong><a href="accessing-resources.html">リソースへのアクセス</a></strong></dt> 74 <dd>アプリケーション コードまたは他の XML リソースからの参照による、提供済みリソースの使用方法。 75</dd> 76 <dt><strong><a href="runtime-changes.html">実行時の変更の処理</a></strong></dt> 77 <dd>アクティビティの実行中に生じた構成の変更の管理方法。</dd> 78 <dt><strong><a href="localization.html">Localization</a></strong></dt> 79 <dd>代替リソースを使用したアプリケーションのローカライズのためのボトムアップ ガイド。代替リソースの特定の使用方法を 1 つだけ解説していますが、複数のユーザーが利用する場合には非常に重要になります。 80 81</dd> 82 <dt><strong><a href="available-resources.html">Resource Types</a></strong></dt> 83 <dd>提供可能な各種リソースタイプのリファレンス。XML 要素、属性、構文について説明しています。 84たとえば、このリファレンスには、アプリケーション メニュー、ドローアブル、アニメーションなどの作成方法が記載されています。 85</dd> 86</dl> 87 88<!-- 89<h2>Raw Assets</h2> 90 91<p>An alternative to saving files in {@code res/} is to save files in the {@code 92assets/} directory. This should only be necessary if you need direct access to original files and 93directories by name. Files saved in the {@code assets/} directory will not be given a resource 94ID, so you can't reference them through the {@code R} class or from XML resources. Instead, you can 95query data in the {@code assets/} directory like an ordinary file system, search through the 96directory and 97read raw data using {@link android.content.res.AssetManager}. For example, this can be more useful 98when dealing with textures for a game. However, if you only need to read raw data from a file 99(such as a video or audio file), then you should save files into the {@code res/raw/} directory and 100then read a stream of bytes using {@link android.content.res.Resources#openRawResource(int)}. This 101is uncommon, but if you need direct access to original files in {@code assets/}, refer to the {@link 102android.content.res.AssetManager} documentation.</p> 103--> 104