1. ホーム
  2. android

[解決済み] アイコンのミップマップ描画可能

2022-03-21 01:55:01

質問

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つの明確な使い方があります。

  1. 密度固有のAPKを構築する際のランチャーアイコンに使用します。開発者の中には、APKのサイズを小さくするために、密度ごとに別々のAPKをビルドする人がいます。しかし、一部のランチャー(一部のデバイスに同梱されている、またはPlayストアで入手可能)は、標準の48dpより大きなアイコンサイズを使用しています。ランチャーはgetDrawableForDensityを使用し、必要であれば拡大するのではなく縮小するので、アイコンは高品質になります。例えば、hdpiのタブレットでは、ランチャーはxhdpiのアイコンを読み込むかもしれません。ランチャーのアイコンを mipmap-xhdpi ディレクトリに配置することで、hdpi デバイス用の APK をビルドするときに drawable-xhdpi ディレクトリのようなストリップを受けずに済みます。すべてのデバイス用に単一の APK を構築している場合、ランチャーは希望する密度の drawable リソースにアクセスできるため、これは本当に重要ではありません。

  2. 4.3からの実際のmipmap APIです。私はこれを使ったことがなく、よく知らない。Android Open Source Project のランチャーでは使用されていませんし、他のランチャーが使用していることも知りません。