自分用メモ
のつづき
環境
OS: Windows7
Java: JDK8
Ant: 1.9.2
id: Android-15
Platform: Android 4.0.3
API Level: 15
Revisions: 5
Tag/ABIs: default/armeabi-v7a
Android SDK Tools: 25.2.5
Android SDK Platform-tools: 29.06
Android SDK Build-tools: 29.0.3
使用してるドキュメント: Android4.4.2時点のもの (6年以上昔の古い情報)
ttp://127.0.0.1:8000/training/basics/firstapp/building-ui.html
前回のやつを弄ってくらしいが
レイアウトのサイズ指定で
full_parentとmatch_parentの同じ意味を持つキーワードが出てきた
full_parentはAPIレベル8以前の表現でmatch_parentに名前変更されたらしい
ttp://127.0.0.1:8000/guide/topics/ui/declaring-layout.html#layout-params
レイアウトサイズのwrap_contentは表示する中身のサイズに合わせる
match_parent(full_parent)はそれを保持するコンテナのサイズいっぱいに合わせる
ライナーレイアウトでは
レイアウトサイズに重みを設定すると重みを設定してない要素のサイズ確定後に残りのスペースに重み設定してる要素が重みの比でそのスペースに収納されるらしい?(これはライナーレイアウトで設定した方向に従って重み分け)
重みを設定する場合はその方向のサイズを 0dp とかに設定しておくセオリー
(dpって何の単位だ?印刷?画面?ともかく大きさを直指定もできるぽいな)
レイアウト指定でTextFieldなどの要素をアクティビティに設置していけるらしく
プログラムから要素に直接アクセスする必要がある場合IDを設定しておく android:id="@+id/foobar" などとやっておく
@から始まるのはリソースのIDを表しててプログラムからは自動で生成されるRというクラスからアクセスできるらしい
リソースのIDはリソースのタイプが異なれば名前がかぶってもOKらしい
@id/foobarと@string/foobarはどっちもfoobarだけとリソースのタイプが違うからOK
文字列リソース
/res/values/strings.xml ファイルに列挙してく
アプリに設定したデフォの国の言語で書いてく
デフォの設定の仕方は知らんが特に何もしなければデフォは英語になってるらしい
ローカライズする方法としてはリソースファイルを入れてるディレクトリでディレクトリ名の末尾に言語コード(enとかjaとか)を足したものを用意すればいいらしい(これは文字列リソースに限らず画像リソース・レイアウトリソースどれでも同様に) (言語コードより優先される国コード (MCC数字)を末尾につける指定もあるらしいが複数言語使う国だと困るよね的な?)
/res/values-ja/strings.xml
デフォのリソースからローカライズしたい部分だけ記述すればよいらしく
ローカライズ版に無いIDはデフォのリソースから参照されるらしい
従ってデフォのリソースには全てのリソースを列挙しておく必要があるらしい
ttp://127.0.0.1:8000/training/basics/supporting-devices/index.html
ttp://127.0.0.1:8000/training/basics/supporting-devices/languages.html
ttp://127.0.0.1:8000/guide/topics/resources/localization.html
画像リソースなら画像に文字含んでたり、その国の法や宗教に配慮して差し替えたりとか(法や宗教なら言語コードじゃなく国コード指定かな)
レイアウトリソースなら名前の入力欄とかで苗字が前か後ろかとかミドルネームあるかとか
そういう配慮ができるらしい