Android Kotlin基礎講座 01.3: イメージリソースと互換性
目次
まとめ
アプリリソース
- アプリのリソースには画像やアイコン、アプリで使われる標準の色や、string、XMLレイアウトファイルなどがあります。これらのリソースはresフォルダーに格納されています。
- drawableリソースフォルダーはアプリで使う画像リソースを格納する場所です。
イメージビューでヴェクター画像を使う
- ヴェクター画像はXMLフォーマットで記述された画像ファイルです。ヴェクター画像はサイズや解像度に囚われずに大きさを変更できるので、PNGのようなビットマップ画像よりも調整がききます。
- レイアウトにヴェクター画像を追加するためには、<ImageView>要素を使用します。画像のソースはandroid:src属性の中に記述します。drawableリソースフォルダーを参照するためには”@drawabke/image_name”のように、@drawableを使います。
- 画像を利用するためにはMainActivityのコードからイメージビューを使います。このビューに設定されている画像のソースを変更するためにはsetImageResource()メソッドを使います。引数にはsetImageResource(R.drawable.image_name)のように、R.drawableを使ってdrawableフォルダーの特定のファイルを指定します。
lateinit
- ビューを代入する変数をフィールドとして宣言し、onCreate()中で初期化することにより、findViewById()の呼び出し回数を最小化します。フィールドにnullを許可することを避けるために、lateinitキーワードを用います。
デザイン時の属性に用いるtools名前空間
- レイアウトの<ImageView>要素の中のtools:src属性はAndroid Stduioのプレビュー、またはデザインエディター上でのみ使いたい画像を表示するために用います。
実際の完成品のアプリではandroid:srcに指定した空の画像が使われます。 - tools名前空間はプレースホルダーを作るためや、Android Studio上でレイアウトのヒントを得るために使われます。tools属性によって宣言されたデータは実際のアプリには使用されません。
APIレベル
- それぞれのAndroid OSには公式のバージョン番号と名前(Android 9.0 “Pie”など)、そしてAPIレベル(API 28など)があります。開発するアプリがサポートするAndroidのバージョンを指定するためにはアプリのGradleファイルにAPIレベルを記述します。
- build.gradleファイル中のcompileSdkVersionパラメーターはGradleがアプリをコンパイルするために用いるAndroid APIレベルを示しています。
- targetSdkVersionパラメーターはアプリに対して行ったテストで使われた最も最近のAPIレベルを示しています。多くの場合、この値はcompileSdkVersionと一致します。
- minSdkVersionパラメーターはアプリが作動する最も古いAPIレベルを示しています。
Android Jetpack
- Android JetpackはGoogle社によって開発されたライブラリのコレクションです。古いAndroidバージョンをサポートするための機能と下位互換クラスが用意されています。Jetpackは以前にはAndroid Support Libraryとして知られていたライブラリを拡張し、取って代わるものです。
- androidxパッケージからインポートされたクラスはJetpackライブラリを参照しています。build.gradleファイル中のJetpackに関する依存関係もandroidxという文言から始まっています。
ヴェクター画像のための下位互換
- ヴェクター画像は本来API 21以降のAndroidバージョンに対応しています。しかしそれ以前のバージョンの場合はGradleがビルド時にヴェクター画像ファイルからPNG画像を生成してくれるので、旧バージョンでも正常に動作します。
- build.gradleファイルの環境設定でvectorDrawables.useSupportLibrary = trueと表記することにより、ヴェクター画像を用いる際、古いAPIレベルに対してはAndroid Supportライブラリを使うように指定することができます。
- ヴェクター画像用のSupportライブラリを有効にしたあとは、<ImageView>要素の中で(android:srcの代わりに)app:srcCompat属性を用いて、表示する画像用のヴェクター画像を指定することができます。
app名前空間
- XMLレイアウトファイルの中のappという名前空間は自身のカスタムコードやライブラリ由来の属性に用いるものであり、核となるAndroidフレームワーク由来の属性に用いるものではありません。
次の講座は 1.4 開発中の問題の自己解決手段です。お疲れさまでした。
完全無料で通えるプログラミングスクール
プログラミング学習はどうしても一人だとつまづいてしまう時がきます。調べればわかることも少なくないですが、最初のうちは調べ方もわからないことが多いため、あまり効率的ではありません。
効率的かつ挫折せずにプログラミングを学習したい方はスクールを検討してみるのも一つの手です。
中には無料で通えるスクールや、就職保証をしてくれるスクールなどもあるので、きっとあなたの目的に応じて最適のスクールが見つかります!以下の記事で評判がよく特におすすめのスクールをいくつかピックアップしているので、スクール選びで後悔したくない方は御覧ください!
おすすめ書籍
Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。
[itemlink post_id=”1743″]実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。
[itemlink post_id=”1745″]