iOS開発者のAndroid開発入門その2(リソース)

botman3 Android

はじめに

Android のプロジェクトにあるいろんなリソースについてです。

AndroidManifest

たぶん iOS でいう info.plist みたいなやつ。
アクティビティはここに全部記載する必要がある。
アプリ名、アプリアイコン、起動時のアクティビティ、パーミッションなどを記載する。

バージョンとかは build.gradle に記載するよう統一する方がいいかもしれない。。。(どっちに書くんだ?)

詳細はアプリ マニフェストの概要

resディレクトリ

リソースディレクトリ(res/)は layout/ や values/ などディレクトリごとに色々なタイプのアプリリソースを管理する。
それぞれのリソースディレクトリに修飾子を付けることにより環境に合わせてリソースを変更することができる。
(ex. values-ja-port, values-ja-land のディレクトリを作ると言語が日本語で画面の向きが縦と横のときに別々のリソースを利用できる)
ファイルやディレクトリを res ディレクトリに直接追加してはいけない!!
New -> Folder か New -> Android Resource Directory / File から追加する!!!

add_res

修飾子について詳しくは下記参考
設定修飾子の名前

アニメーション

事前定義のアニメーションを定義する。
トゥイーンアニメーションは res/anim/ に保存し、R.anim クラスからアクセスする。
フレームアニメーションは res/drawable/ に保存し、R.drawable クラスからアクセスする。

トゥイーンアニメーション(ファイル名が ID になる)

フレームアニメーション(ファイル名が ID になる)

詳細はアニメーション リソース

色状態リスト

View の状態に応じて変わる色のリソースを定義する。
res/color/ に保存し、R.color クラスからアクセスする。(静的な色は res/values/colors.xml に定義する。)


ファイル名が ID になる

詳細はカラー状態リストリソース

ドローアブル

ビットマップや XML でさまざまなグラフィックを定義する。
res/drawable/ に保存し、R.drawable クラスからアクセスする。


ファイル名が ID になる

詳細はドローアブル リソース

レイアウト

アプリ UI のレイアウトを定義する。
res/layout/ に保存し、R.layout クラスからアクセスする。


ファイル名が ID になる

詳細はレイアウト リソース

メニュー

アプリメニューの内容を定義する。
res/menu/ に保存し、R.menu クラスからアクセスする。


ファイル名が ID になる

詳細はメニュー リソース

文字列

文字列、文字列配列、数量文字列(複数形)を定義する(文字列の書式設定とスタイル設定も含める)。
res/values/ に保存し、R.string クラス、R.array クラス、R.plurals クラスからアクセスする。


文字列(ファイル名は任意、 要素の name が ID になる)

文字列配列(ファイル名は任意、 要素の name が ID になる)

数量文字列(複数形)(ファイル名は任意、 要素の name が ID になる)

詳細は文字列リソース

複数形はローカライズ対応のめんどくさいポイント。。。

スタイル

UI 要素の外観と形式を定義する。
res/values/ に保存し、R.style クラスからアクセスする。


ファイル名は任意、要素の name が ID になる

詳細はスタイル リソース

フォント

フォントファミリーを定義し、カスタムフォントを XML に含める。
res/font/ に保存し、R.font クラスからアクセスする。


ファイル名が ID になる

詳細はフォント リソース

その他

下記のような基本的な値を静的リソースとして定義する。

  • ブール値
    ブール値を扱う XML リソース。

  • 色の値(16 進数)を扱う XML リソース。
  • ディメンション
    ディメンションの値(と測定単位)を扱う XML リソース。
  • ID
    アプリリソースとコンポーネントの一意の識別子を提供する XML リソース。
  • 整数
    整数値を扱う XML リソース。
  • 整数配列
    整数の配列を提供する XML リソース。
  • 型付き配列
    TypedArray を提供する XML リソース(ドローアブルの配列に使用できます)。

詳細はその他のリソースタイプ

その他リソース

CSV や JSON ファイルなど読み込む場合は res/raw/ か assets/ ディレクトリを利用する。
assets を利用する場合は ID が付与されないので AssetManager で読み込む。使い分けはわからない。。。
XML ファイルの場合は res/xml/ を使える。

さいごに

今までリソースファイル追加するときは毎回やり方検索してやってたけど大体理解した!
画面の向きでリソース切り替えれるのは知らなかった。。。

参考

https://amzn.to/4hZ13MU

コメント

タイトルとURLをコピーしました