リソースをイメージや文字列としてアプリケーションから常に外部化しておくことにより、それらを独立させて保持することが可能となります。またリソースの外部化により、異なる言語や画面サイズといった特定のデバイス設定をサポートできるようになり、このことはさらに異なる設定の Android 搭載のデバイスで使用可能となるという意味でもますます重要となってきます。この機能を提供するためには、リソースをプロジェクトの res/
ディレクトリに、タイプや設定によりグループ化したさまざまなサブディレクトリを使ってまとめておく必要があります。
図 1. 共にデフォルトのリソースを使用する 2 つのデバイス設定
図 2. 一方が代替リソースを使用している 2 つのデバイス設定
あらゆるリソースのタイプに対応するために、アプリケーション用にデフォルトと複数の代替 リソースを以下のように特定することができます。
- デバイスの設定に左右されないリソースまたは現在の設定に合致する代替のリソースがないときに使用されるデフォルトの設定。
- 特定の設定で使用するためにデザインされたリソースの代替の設定。特殊な設定用にリソースをグループ化して特定するには、ディレクトリ名に適正な設定識別子を追加します。
例えば、デフォルトとして res/layout/ ディレクトリに保存されている UI レイアウトとは別に、画面がランドスケープのオリエンテーションで使用されるようするための UI レイアウトを res/layout-land/ ディレクトリに保存することによりその異なるレイアウトを特定することになるかもしれません。Android システムは現在のデバイスの設定をリソースのディレクトリ名とマッチングさせることにより自動的に適切なリソースを適用します。
図 1 では、代替リソースが使用できないとき、アプリケーションのデフォルトのリソース群が異なる 2 つのデバイスで使用されることになる様子をデモしています。図 2 では、代替リソースのセットを持つアプリケーションが片方のデバイス設定の条件に合い、2 つのデバイスで異なるリソースが使用される様子を表しています。
上記の情報は、Android においてアプリケーションリソースがどのように動作するのかを簡単に説明しているものです。以下のドキュメントでは、アプリケーションのリソースをまとめる方法、代替リソースを指定する方法、アプリケーションでアクセスする方法、および関連情報の完全なガイドを提供しています。
- リソースの提供
- アプリケーションで提供できるリソースの種類、および特定のデバイス設定用の代替リソースの方法です。
- リソースへのアクセス
- アプリケーションコードから、または他の XML リソースからのどちらかの提供済みリソースの使用方法です。
- 実行時の変化への対処
- Activity が実行中に発生した設定変更の管理方法です。
- ローカライズ
- 代替リソースを使用したアプリケーションのローカライズへのボトムアップガイド。たったひとつの代替リソースを指定することで、たくさんの人に使ってもらえるということでとても重要です。
- リソースタイプ
- 提供することのできるさまざまなリソースタイプの XML の要素、属性、構文のリファレンスです。例えば、このリファレンスではメニュー、Drawable、アニメーションといったアプリケーションのリソースを作成する方法を示しています。