8.0からAdaptiveアイコン(アダプティブアイコン)というアイコンを用意する必要がでてきました。これまでの通常のアイコン、ラウンドアイコンに加えて、アダプティブアイコンも必要になるということです。APIレベルが26以降になるとアダプティブアイコンへの対応が必須になります。7.1の古いスマホで確認していたので全く気が付かず、携帯を買い替えて初めてこの事実を知りました。ここではアダプティブアイコンの用意の仕方をまとめました。アダプティブアイコンとはAndroidはOS8.0から、アイコンの形を統一する方向に変わります。それまではアプリごとに様々な形をしており、自由に作ることができましたが、iOSのようにすべてのアイコンが同じ形になることになります。これに対応したアイコンが、アダプティブアイコンと言います。アダプティブアイコンを作るには、背景と前面の2つのリソースを用意する必要があります。背景は色指定で前面は画像、または背景と前面ともに画像、というように指定することができます。この背景と前面を、特定の形にくりぬいて表示します。そのため、くりぬかれる範囲を想定してつくらないと、みせたい部分が表示されなくなってしまいます。くりぬく形は丸や角丸の四角であったり、スマホごとに採用されるくりぬき方が異なるようです。くりぬく種類は数種類に定まっています。画像のサイズアイコンを画像で用意する場合には、108dp×108dpで作る必要があります。108pxの画像を規準として、以下のように画像を作ります。192px表示される形の種類アダプティブアイコンは、背景画像の上に前面画像が乗っかっており、さらにその上から端末メーカーごとに指定したマスクが被された形で表示されます。最終的には端末メーカーが選んだマスクの形に表示されるということです。そのため、今までのように自由な形で表示することはできなくなります。マスクの形には以下のものがありますが、どのマスクが選ばれるかは端末によって異なります。Square、Squareの4つです。端末はこの4種類から1つ、マスクを選んでおり、その形にアイコンが切り抜かれます。表示される範囲マスクが端末ごとに異なりますが、必ず表示される範囲は決められています。それが、直径66dpの円です。中心から半径33dpで描かれる円型に収まる部分は必ず表示されます。場合によって表示される範囲とは、円型のマスクよりも大きいマスクを採用している端末で表示されます。72dpの範囲になります(角丸です)。以上のことから、必ず表示させたい部分は中心から66dpの範囲で画像を用意します。アダプティブアイコンの用意の仕方1.前面を画像、背面を色にする「ic_launcher.xml」を以下の内容にします。※ic_launcher.xmlは「mipmap-anydpi-v26」フォルダ以下に格納します。android:drawable="@mipmap/ic_launcher_foreground"/></adaptive-icon>背景色はcolorフォルダ以下のic_launcher_background.xmlで指定します。前面画像はmipmap-[各dpi]フォルダ以下に、それぞれic_launcher_foreground.pngとして保存します。2.前面を画像、背面を画像にする(各サイズ対応)「ic_launcher.xml」を以下の内容にします。※ic_launcher.xmlは「mipmap-anydpi-v26」フォルダ以下に格納します。android:drawable="@mipmap/ic_launcher_foreground"/></adaptive-icon>背景画像はmipmap-[各dpi]フォルダ以下に、それぞれic_launcher_background.pngとして保存します。前面画像はmipmap-[各dpi]フォルダ以下に、それぞれic_launcher_foreground.pngとして保存します。3.前面を画像、背面を画像にする(背面は画像1つだけ)「ic_launcher.xml」を以下の内容にします。※ic_launcher.xmlは「mipmap-anydpi-v26」フォルダ以下に格納します。android:drawable="@mipmap/ic_launcher_foreground"/></adaptive-icon>背景画像はdrawableフォルダ以下に、ic_launcher_background.pngとして保存します。ic_launcher_background.xmlがある場合は、削除します。前面画像はmipmap-[各dpi]フォルダ以下に、それぞれic_launcher_foreground.pngとして保存します。Studioで、ボタンなどの色や形の指定をする際、1つのxmlファイルで、ボタンを押したときと押していないときの状態を指定する方法です。Studioを使って、背景に画像を設定する方法です。今回は以下の画像を使います。画像サイズなどは適当につくります。Androidは様々な解像度がありますが、画...続きを読むAndroidアプリ:画面遷移時に値を渡すAndroidで画面遷移時に値を渡す方法です。@Over...続きを読むAndroidアプリ:テキストをリスト表示するAndroidアプリで、ListViewを使い、配列に格納したテキストをリスト表示します。Consoleのクラッシュ報告で、「ClassNotFoundException(ac.loadClass)」というログが表示されていたので、調べました。StudioでボタンやEditTextを配置して、角丸にします。角丸や色などを指定する場合には、それ専用のxmlファイルを別途用意し、読み込ませるようにします。ボタンの背景色と角丸...続きを読むAndroidアプリ:レイアウトの途中にスクロールを入れるAndroidアプリで以下のようなレイアウトを組む方法です。上、中央、下のパーツに分けて、上下のパーツは固定、中央のパーツはスクロール可能にします。最初にLinearLa...続きを読むAndroidアプリ:クリックイベントとロングクリックイベントを取得するAndroidアプリで、クリックイベントとロングクリックイベントの2つを取得して処理する方法です。clas...続きを読むAndroidアプリ:Firebaseを利用したAdMobの実装方法AndroidアプリでFirebaseを利用したAdMobの実装方法を調べました。FirebaseおよびAdMobには既にユーザ登録済みであることを想定しています。未登録の場合は先に登録して...続きを読むAndroidアプリ:ボタンのテキストを変えるAndroidでボタンのテキストをプログラム上で変える方法です。Runtimeでファイルを起動すると「セキュリティに影響を及ぼす可能性のある問題点が検知されました。views©kuuur.netkuuur.netは管理人KUUURが気になった言葉を取り上げて調べ見識を深めるサイトです。kuuur.netの内容には誤りがあることがあります。kuuur.netの内容を信用した結果損害等を被った場合にKUUURは責任を負うことはできません。この点をご理解の上kuuur.netをご利用ください。内容の訂正などのご意見はお問い合わせからお願いします。kuuur.netはリンクフリーです。KUUURへの連絡も不要です。次の2点についてご留意ください。フレーム内表示など自分のサイトのコンテンツであるかのような表示はしないでください。リンクしたページのURLは予告なく変更されることがあります。kuuur.netのコンテンツは他に著作権が存在するものを除きすべてKUUURに帰属します。