• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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