[解決済み] アイコンのミップマップ描画可能
質問
Android 4.3 (Jelly Bean)からは、(1)と(2)に加えて、(3)も利用できるようになりました。
res/mipmap
フォルダに画像を格納することができます。
例えば
Android版Chrome
の代わりに、これらのフォルダにアイコンを格納します。
res/drawable
フォルダーに格納されます。
このミップマップ画像は、他の見慣れたドローアブル画像とどう違うのでしょうか?
なるほど、私のマニフェストでは
@mipmap/
修飾子ではなく
@drawable/
これは、リソース・フォルダ名からすると理にかなっています。
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
参考文献
は Android 4.3のAPI のドキュメントには、次のように書かれています。
<ブロッククオートミップマップをビットマップやドローアブルのソースとして使用すると、簡単です。 この方法は、高品質の画像と様々な画像スケールを提供することができます。 特に、画像の拡大縮小を想定している場合に便利です。 アニメーション
Android 4.2 (API level 17) では、Bitmap のミップマップのサポートが追加されました。 Android は、Bitmap に含まれる mip 画像を交換します。 を有効にしました。Android 4.3, で、BitmapDrawable オブジェクトのミップマップを有効にすることができます。 ミップマップアセットを提供し、android:mipMap属性を設定します。 ビットマップリソースファイルまたはhasMipMap()を呼び出すことによって行います。
理解の助けになるようなことが書かれていないのですが。
XMLビットマップリソース
があります。
android:mipMap
プロパティがあります。
ブール値です。ミップマップヒントの有効・無効を設定します。については setHasMipMap() を参照してください。 を参照してください。デフォルトはfalse。
これは、私が見る限り、ランチャーアイコンには適用されません。
Google Groupsで質問された( リソース名 "mipmap"の目的は!? )に、ロマン・ガイは答えた。
より大きな解像度で画像を提供するのは便利です。 通常、計算されます(例えば、mdpiのデバイスで、Launcherが 大きなアプリのショートカットを表示するために、より大きなhdpiのアイコンが必要です)。
これでほぼ納得できるような気がするけど、ちょっと違うかな。
やはりランディ・スギアントのフォローに軍配が上がりますね。
これの利点は何ですか?また mipmapsは、おそらくランチャーアイコンをより良くするためのものでしょうか?
もちろんです。 Wikipediaに"Mipmap"のページがあります。 というのは、1983年に発明された古い技術で、現在のAndroidの実装とは全く関係ないのです。
をすべて保存する必要があります。
アプリアイコンを
res/mipmap
フォルダ
は最近どうなっているのでしょうか?
ガイドライン
このようなミップマップ画像について教えてください。
更新情報その1
少し説明を試みているブログ記事を紹介します。
しかし、そのブログ記事で使われている画像は、1つのファイルにたくさんのロゴが入っているようなものです。これは、私がChromeのmipmapフォルダで見たものとは違います。
クロームの
mipmap-hdpi
フォルダには3つの画像が含まれています。1つはChromeのロゴで、単体です。
不思議なことに、私が期待する48x48ではなく、72x72なのです。
もしかしたら、mipmapフォルダに大きなアイコンを入れておくだけでいいのかもしれませんね。
更新情報その2
2014/10/23のAndroid Developers Blogの記事で、再度、確認したところ
mipmap
フォルダーをアプリケーションアイコンに使用します。
Nexus6の画面密度について語るとき、筆者はこう書いている。
<ブロッククオートアプリのアイコンは、mipmapフォルダに配置するのがベストプラクティスです(mipmapフォルダは とは異なる解像度で使用されるため、drawable- フォルダを使用します。 デバイスの電流密度 例えば、xxxhdpiのアプリアイコンを xxhdpiのデバイスのランチャーで使用されます。
更新情報その3
Android Studioでは
ic_launcher.png
アイコンを
mipmap...
フォルダーではなく
drawable...
フォルダーに作成されていました。
解決方法は?
ミップマップには、2つの明確な使い方があります。
-
密度固有のAPKを構築する際のランチャーアイコンに使用します。開発者の中には、APKのサイズを小さくするために、密度ごとに別々のAPKをビルドする人がいます。しかし、一部のランチャー(一部のデバイスに同梱されている、またはPlayストアで入手可能)は、標準の48dpより大きなアイコンサイズを使用しています。ランチャーはgetDrawableForDensityを使用し、必要であれば拡大するのではなく縮小するので、アイコンは高品質になります。例えば、hdpiのタブレットでは、ランチャーはxhdpiのアイコンを読み込むかもしれません。ランチャーのアイコンを mipmap-xhdpi ディレクトリに配置することで、hdpi デバイス用の APK をビルドするときに drawable-xhdpi ディレクトリのようなストリップを受けずに済みます。すべてのデバイス用に単一の APK を構築している場合、ランチャーは希望する密度の drawable リソースにアクセスできるため、これは本当に重要ではありません。
-
4.3からの実際のmipmap APIです。私はこれを使ったことがなく、よく知らない。Android Open Source Project のランチャーでは使用されていませんし、他のランチャーが使用していることも知りません。
関連
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
android exception - aapt.exe has stopped working.
-
Androidのカラーグラデーション実装のまとめ
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み] アイテムの親を取得する際にエラーが発生しました。AppCompat v23にアップグレードした後、指定された名前に一致するリソースが見つかりません。
-
[解決済み] Androidレイアウトのフォルダにサブフォルダを含めることはできますか?
-
[解決済み] Androidのdrawableディレクトリはサブディレクトリを含むことができますか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】大きなサイズの画像からxxhdpi、xhdpi、hdpi、mdpi、ldpiのdrawableを作成する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
[解決済み] MipmapsとDrawableフォルダの比較 [重複]。
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
android:EMSのプロパティ
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
Android Bluetooth 開発の基本プロセス
-
[解決済み] Androidアプリのアイコン設定
-
[解決済み] Android Studioで "drawable "フォルダに画像を追加する方法を教えてください。