リソースの概要

画像や文字列といったリソースは、常にアプリケーション コードの外部に置くようにすることで、独立して保持できるようになります。 さらに、リソースを外部化することで、言語や画面サイズが異なるような特定の端末構成をサポートする代替リソースを提供できるようになります。異なる構成を持つ Android ベースの端末が増えていることから、この外部化がますます重要になってきています。 異なる構成に互換性を持たせるには、リソースをタイプや構成ごとにグループ化するさまざまなサブディレクトリを使用して、プロジェクトの res/ ディレクトリ内でリソースを整理する必要があります。

図 1. 2 つの異なる端末でデフォルト レイアウトを使用(アプリによる代替レイアウトの提供なし)。

図 2. 2 つの異なる端末で違う画面サイズ用のレイアウトを使用。

すべてのリソースタイプに対して、アプリケーションのデフォルト レイアウトと複数の代替リソースを指定できます。

  • デフォルト リソースは、端末構成に関係なく使われるものであり、現在の構成に一致する代替リソースがない場合に使用されます。
  • 代替リソースは、特定の構成で使うために作成したリソースです。 リソースのグループを特定の構成に使用するよう指定するには、適切な構成修飾子をディレクトリ名の後ろに追加します。

たとえば、デフォルトの UI レイアウトが res/layout/ ディレクトリに保存してある場合、横向きの画面には別のレイアウトを使用するよう指定するには、そのレイアウトを res/layout-land/ ディレクトリに保存します。 Android は、現在の端末の構成とリソースのディレクトリ名をマッチングさせ、適切なリソースを自動的に適用します。

図 1 は、代替リソースがない場合に、システムが 2 つの異なる端末に同じレイアウトを適用する様子を表しています。 図 2 は、大きい画面の代替レイアウト リソースを追加した場合の、レイアウトの適用の様子を表しています。

次のドキュメントには、アプリケーション リソースの整理、代替リソースの指定、アプリケーションでのアクセスなどに関する情報が詳細に記載されています。

リソースの提供
アプリで提供可能なリソースの種類、保存場所、特定の端末構成用の代替リソースの作成方法。
リソースへのアクセス
アプリケーション コードまたは他の XML リソースからの参照による、提供済みリソースの使用方法。
実行時の変更の処理
アクティビティの実行中に生じた構成の変更の管理方法。
ローカライズ
代替リソースを使用したアプリケーションのローカライズのためのボトムアップ ガイド。代替リソースの特定の使用方法を 1 つだけ解説していますが、複数のユーザーが利用する場合には非常に重要になります。
複雑な XML リソース
AnimatedVectorDrawable のような複雑なリソースを 1 つの XML ファイル内に作成するための XML フォーマット。
リソースのタイプ
提供可能な各種リソースタイプのリファレンス。XML 要素、属性、構文について説明しています。 たとえば、このリファレンスには、アプリケーション メニュー、ドローアブル、アニメーションなどの作成方法が記載されています。