アイコンのミップマップドローアブル

453
Richard Le Mesurier 2014-05-30 04:29.

Android 4.3(Jelly Bean)以降、res/mipmapフォルダを使用して「ミップマップ」画像を保存できるようになりました。

たとえば、Chrome for Androidは、アイコンを通常のres/drawableフォルダではなくこれらのフォルダに保存します。

これらのミップマップ画像は、他のよく知られた描画可能な画像とどのように異なりますか?

マニフェストでは@mipmap/、の代わりに修飾子を使用していることがわかります@drawable/。これは、リソースフォルダー名を指定すると意味があります。

<activity
    android:name=".MipmapDemp"
    android:icon="@mipmap/ic_launcher" />

参照:

アンドロイド4.3のAPIのドキュメントが言うには、以下があります。

ビットマップまたはドローアブルのソースとしてミップマップを使用することは、高品質の画像とさまざまな画像スケールを提供する簡単な方法です。これは、アニメーション中に画像がスケーリングされることを期待する場合に特に便利です。

Android 4.2(APIレベル17)は、ビットマップクラスのミップマップのサポートを追加しました。Androidは、ミップマップソースを指定し、setHasMipMap()を有効にすると、ビットマップのミップイメージを交換します。Android 4.3では、ミップマップアセットを提供してビットマップリソースファイルにandroid:mipMap属性を設定するか、hasMipMap()を呼び出すことで、BitmapDrawableオブジェクトのミップマップを有効にすることもできます。

理解に役立つものは何もありません。


XMLビットマップリソースには次のandroid:mipMapプロパティがあります。

ブール値。ミップマップヒントを有効または無効にします。詳細については、setHasMipMap()を参照してください。デフォルト値はfalseです。

私が見る限り、これはランチャーアイコンには適用されません。


質問はグーグルグループ(リソース名「ミップマップ」の目的?!)で提起され、ロメインガイはそれに答えました:

通常計算されるより大きな解像度で画像を提供すると便利です(たとえば、mdpiデバイスでは、Launcherはより大きなhdpiアイコンに大きなアプリのショートカットを表示する必要がある場合があります)。

これはほとんど意味があるように感じますが、完全ではありません。

私はまだランディ・スギアントのフォローアップに行きたいと思っています:

これの利点は何ですか?おそらくより良いランチャーアイコンのために、ミップマップを使用する方法のガイドはありますか?


もちろん、ウィキペディアには「ミップマップ」のページがあります。これは、1983年に発明された古い手法を指しますが、現在のAndroidの実装とはまったく関係がありません。


最近、すべてのアプリアイコンをres/mipmapフォルダーに保存する必要がありますか?また、これらのミップマップ画像のガイドラインは何ですか?


アップデート#1

これはそれを少し説明しようとするブログ投稿です。

しかし、そのブログ投稿で使用されている画像は、多くのロゴが含まれている1つのファイルのように見えることを示しています。これは、Chromeのミップマップフォルダに表示されるものではありません。

Chromeのmipmap-hdpiフォルダには3つの画像が含まれています。1つは、それ自体がChromeのロゴです。

不思議なことに、それは72x72であり、私が期待する48x48ではありません。

おそらくこれですべてです-ミップマップフォルダに大きなアイコンを保持する必要がありますか?


アップデート#2

2014年10月23日のAndroidDevelopers Blogの投稿でもmipmap、アプリケーションアイコンにフォルダーを使用するというアイデアが確認されています。

Nexus 6の画面密度について話すとき、作者は次のように書いています。

アプリのアイコンは、デバイスの現在の密度とは異なる解像度で使用されるため、(drawable-フォルダーではなく)mipmap-フォルダーに配置することをお勧めします。たとえば、xxxhdpiアプリアイコンは、xxhdpiデバイスのランチャーで使用できます。


アップデート#3

Android Studioは、Eclipseがic_launcher.pngアイコンを作成するために使用したmipmap...フォルダーではなく、フォルダーにアイコンを作成することに注意してくださいdrawable...


10 answers

262
Kevin TeslaCoil 2014-06-06 07:25.

ミップマップには2つの異なる用途があります。

  1. 密度固有のAPKを構築する際のランチャーアイコン用。一部の開発者は、APKのサイズを抑えるために、密度ごとに個別のAPKを作成します。ただし、一部のランチャー(一部のデバイスに同梱されているか、Playストアで入手可能)は、標準の48dpよりも大きなアイコンサイズを使用します。ランチャーはgetDrawableForDensityを使用し、必要に応じて拡大ではなく縮小するため、アイコンは高品質です。たとえば、hdpiタブレットでは、ランチャーがxhdpiアイコンをロードする場合があります。ランチャーアイコンをmipmap-xhdpiディレクトリに配置することで、hdpiデバイス用のAPKを構築するときにdrawable-xhdpiディレクトリのようにアイコンが削除されることはありません。すべてのデバイスに対して単一のAPKを構築している場合、ランチャーは目的の密度の描画可能なリソースにアクセスできるため、これは実際には問題ではありません。

  2. 4.3からの実際のミップマップAPI。私はこれを使ったことがなく、慣れていません。これはAndroidオープンソースプロジェクトランチャーでは使用されておらず、他のランチャーが使用していることを私は知りません。

79
Kazuaki 2015-05-21 20:20.

これらすべての回答以来 Googleはドキュメント更新しているようです。したがって、これが将来他の誰かに役立つことを願っています:)新しい(新しい)プロジェクトを作成しているときに、この質問に自分で出くわしました。

TL; DR:dp固有のリソース最適化の一部として、ドローアブルが削除される場合があります。ミップマップは削除されません。

さまざまなデバイス上のさまざまなホーム画面ランチャーアプリは、さまざまな解像度でアプリランチャーアイコンを表示します。アプリのリソース最適化手法で未使用の画面密度のリソースを削除すると、ランチャーアプリは表示用に低解像度のアイコンをアップスケールする必要があるため、ランチャーアイコンがぼやけて見える可能性があります。これらの表示の問題を回避するには、アプリはmipmap/ランチャーアイコンのリソースフォルダーを使用する必要があります。Androidシステムは、密度の除去に関係なくこれらのリソースを保持し、ランチャーアプリが表示に最適な解像度のアイコンを選択できるようにします。

http://developer.android.com/tools/projects/index.html#mipmapから)

28
sergej shafarenka 2015-09-01 23:42.

これらのミップマップ画像は、他のよく知られた描画可能な画像とどのように異なりますか?

これが違いを説明しようとする私の2セントです。Androidで画像を操作するときに対処する2つのケースがあります。

  1. デバイス密度の画像をロードしたいので、実際のサイズを変更せずに「そのまま」使用します。この場合、ドローアブルを使用する必要があり、Androidが最適な画像を提供します。

  2. デバイスの密度に合わせて画像をロードしたいのですが、この画像は拡大または縮小されます。たとえば、これは、より大きなランチャーアイコンを表示する場合や、画像のサイズを大きくするアニメーションがある場合に必要です。このような場合、最高の画質を確保するには、画像をミップマップフォルダに配置する必要があります。Androidが行うことは、画像を拡大するのではなく、高密度のバケットから画像を取得しようとすることです。これにより、画像の鮮明さ(品質)が向上します。

したがって、画像を配置する場所を決定するための経験則は次のようになります。

  • ランチャーアイコンは常にミップマップフォルダーに入ります。
  • 多くの場合拡大(または極端に縮小)され、アプリにとって品質が重要な画像も、ミップマップフォルダーに移動します。
  • 他のすべての画像は通常のドローアブルです。
23
matiash 2014-06-08 15:59.

4.3でのミップマップのAndroid実装は、ウィキペディアの記事で説明されている1983年の手法とまったく同じです:)

ミップマップセットの各ビットマップイメージは、メインテクスチャの縮小された複製ですが、特定の詳細レベルが低下しています。メインテクスチャは、ビューが完全に詳細にレンダリングするのに十分な場合でも使用されますが、テクスチャを遠くから、または小さいサイズで表示すると、レンダラーは適切なミップマップイメージ(...)に切り替わります。

これは3Dグラフィックスの手法として説明されていますが(「遠くから見る」と記載されているため)、2Dにも同様に適用されます(「描画されるのはより小さなスペース」、つまり「縮小」と解釈されます)。

具体的なAndroidの例として、特定の背景を描画可能なビュー(特に、BitmapDrawable)があるとします。ここで、アニメーションを使用して、元のサイズの0.15にスケーリングします。通常、これには各フレームの背景ビットマップを縮小する必要があります。ただし、この「極端な」ダウンスケーリングは、視覚的なアーティファクトを生成する可能性があります。

ただし、ミップマップを提供することはできます。これは、画像がいくつかの特定のスケール(たとえば、1.0、0.5、および0.25)に対してすでに事前にレンダリングされていることを意味します。アニメーションが0.5のしきい値を「超える」と、元の1.0サイズの画像を縮小し続ける代わりに、0.5の画像に切り替えて縮小します。これにより、より良い結果が得られます。など、アニメーションが続くにつれて。

これは実際にはレンダラーによって行われるため、少し理論的です。ビットマップクラスのソースによると、これは単なるヒントであり、レンダラーはそれを尊重する場合としない場合があります。

/**
 * Set a hint for the renderer responsible for drawing this bitmap
 * indicating that it should attempt to use mipmaps when this bitmap
 * is drawn scaled down.
 *
 * If you know that you are going to draw this bitmap at less than
 * 50% of its original size, you may be able to obtain a higher
 * quality by turning this property on.
 * 
 * Note that if the renderer respects this hint it might have to
 * allocate extra memory to hold the mipmap levels for this bitmap.
 *
 * This property is only a suggestion that can be ignored by the
 * renderer. It is not guaranteed to have any effect.
 *
 * @param hasMipMap indicates whether the renderer should attempt
 *                  to use mipmaps
 *
 * @see #hasMipMap()
 */
public final void setHasMipMap(boolean hasMipMap) {
    nativeSetHasMipMap(mNativeBitmap, hasMipMap);
}

ただし、これがアプリケーションアイコンに特に適している理由はよくわかりません。タブレット上のAndroid、および一部のランチャー(GELなど)は、アイコンを「1密度高く」して大きく表示するように要求しますが、これは通常のメカニズム(つまりdrawable-xxxhdpi、&​​c)を使用して行われることになっています。

11
kreker 2015-01-17 15:34.

指摘する価値のある別のスレッドで私が言及したことの1つは、密度の異なるアプリのバージョンを構築している場合は、「ミップマップ」リソースディレクトリについて知っておく必要があります。これは、さまざまなapkターゲットを作成するときに密度ストリッピングに関与しないことを除いて、「描画可能な」リソースとまったく同じです。

https://plus.google.com/105051985738280261832/posts/QTA9McYan1L

4
Stev 2016-03-22 14:38.

通知アイコンの正しいタイプを決定するために、これに対する明確な答えを探していたので、この明確なステートメントをトピックに追加したいと思います。http://developer.android.com/tools/help/image-asset-studio.html#savingからです

注:ランチャーアイコンファイルは、他のアイコンとは異なる場所にあります。それらはmipmap /フォルダーにあります。他のすべてのアイコンファイルは、プロジェクトのdrawable /フォルダーにあります。

3
Hayk Nahapetyan 2017-07-07 21:40.

Androidで画像を操作するときに対処する2つのケースがあります。

  1. デバイス密度の画像をロードしたいので、実際のサイズを変更せずに「そのまま」使用します。この場合、ドローアブルを使用する必要があり、Androidが最適な画像を提供します。
  2. デバイス密度に合わせて画像をロードしたいのですが、この画像は拡大または縮小されます。たとえば、これは、より大きなランチャーアイコンを表示する場合や、画像のサイズを大きくするアニメーションがある場合に必要です。このような場合、最高の画質を確保するには、画像をミップマップフォルダに配置する必要があります。Androidが行うことは、画像を拡大するのではなく、高密度のバケットから画像を取得しようとすることです。

そう

したがって、画像を配置する場所を決定するための経験則は次のようになります。

  1. ランチャーアイコンは常にミップマップフォルダーに入ります。

  2. 多くの場合、拡大(または極端に縮小)され、アプリにとって品質が重要な画像は、ミップマップフォルダーにも配置されます。

  3. 他のすべての画像は通常のドローアブルです。

この記事からの引用。

2
Fartab 2017-01-10 20:56.

異なる密度の個別のapkを作成すると、他の密度の描画可能なフォルダーが削除されます。これにより、高密度のランチャーアイコンを使用するデバイスでは、アイコンがぼやけて表示されます。ミップマップフォルダは削除されないため、ランチャーアイコンを含めるためにそれらを使用するのが常に最善です。

1
Piyush 2015-07-03 23:28.
res/
mipmap-mdpi/ic_launcher.png (48x48 pixels)
mipmap-hdpi/ic_launcher.png (72x72)
mipmap-xhdpi/ic_launcher.png (96x96)
mipmap-xxhdpi/ic_launcher.png (144x144)
mipmap-xxxhdpi/ic_launcher.png (192x192)

ランチャーのアプリアイコンのミップマップ

http://android-developers.blogspot.co.uk/2014/10/getting-your-apps-ready-for-nexus-6-and.html

https://androidbycode.wordpress.com/2015/02/14/goodbye-launcher-drawables-hello-mipmaps/

1
Evan 2016-10-01 19:27.

HDPIのようなターゲット画面解像度のAPKを作成すると、AndroidアセットパッケージツールAAPTは、不要な他の解像度のドローアブルを取り除くことができますが、それがミップマップフォルダーにある場合、これらのアセットはターゲット解像度に関係なく、APK。

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

この太陽に優しいショルダーバッグで一日中外出してください

この太陽に優しいショルダーバッグで一日中外出してください

画像クレジット:Richard Mackney / Flickrトラベリングライトは必需品だけを運ぶことを意味するかもしれませんが、デバイスを補充する方法がない外出先では、接続を維持するのが難しくなる可能性があります。それはあなたがすべての生き物の快適さやクールなガジェットを捨てる必要があるという意味ではありません、ただあなたがいくつかのより小さなものを手に入れる必要があるということです、そしておそらくあなた自身をジュースに保つためにいくつかの、例えば非正統的な充電装置を使うでしょう。

ミッドセンチュリーリゾートのポストカードが廃墟に変わるのを見る

ミッドセンチュリーリゾートのポストカードが廃墟に変わるのを見る

ニューヨーク州スプリンググレンにある放棄されたホモワックロッジのボーリング場。キャッツキル南部のこの地域は、ニューヨーク市からのユダヤ人の行楽客に人気があることから、かつてはボルシチベルトとして知られていました。

ブルックリンスレートの美しいボードをあなたのテーブルに座らせましょう

ブルックリンスレートの美しいボードをあなたのテーブルに座らせましょう

ブルックリンスレートブルックリンスレートのマグカップとコースターの賞賛をすでに歌っており、それらの食器製品も同様に堅実です。ブルックリンスレートは、さまざまなサイズとテクスチャのスレートの完全な採石場を販売しています。一部のオプションは赤でも利用できます。上で見ることができるように、彼らは同様にカスタマイズをします。

遺伝子分析により、私たちの体内に生息する微生物の99%がカタログ化されていないことが明らかになりました

遺伝子分析により、私たちの体内に生息する微生物の99%がカタログ化されていないことが明らかになりました

画像:Juan Gaertner / Shutterstock私たちの体の内部は、私たちの細胞とは何の関係もない何十億もの微生物が住んでいる本物の生態系です。これがまだ少し気になることではなかったかのように、これらの微生物の99%が研究されたことがないことがわかりました。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

ムーアの法則を超えて

ムーアの法則を超えて

計算に対する私たちの欲求とムーアの法則が提供できるものとの間には、指数関数的に増大するギャップがあります。私たちの文明は計算に基づいています—建築と想像力の現在の限界を超える技術を見つけなければなりません。

Language