10

この投稿(およびその他) と、Android でのさまざまな画面解像度のサポートに関するドキュメントを読みましたが、(単純な) 質問に対する明確な答えを見つけることができませんでした:

Android アプリの画像に「res/drawable」を使用しても問題ありませんか?

背景: この特定のアプリで必要な唯一の画像は、アプリ アイコン自体と通知用のアイコンです。どのレイアウトにも画像はありません。
したがって、私の理解では、「hdpi」、「mdpi」、および「ldpi」フォルダーが見つからない場合、Android は「res/drawable」をフォールバックとして使用します。
画面解像度が異なる場合の唯一の落とし穴は、特別な解像度が見つからない場合に Android が特定の解像度の画像をスケーリングすることであるように思われるため、画像がぼやけてしまうため、これはアップスケーリング時にのみ問題になるはずです。しかし、すべての「hdpi」イメージを「res/drawable」で提供すると (3 つの異なるイメージではなく)、サイズが大きすぎる場合、Android はこれらのイメージをダウンスケールしませんか?
それが本当なら、画像の 3 分の 1 だけで APK スペースを節約できます。

フォローアップの質問: API レベル 3 の場合、「drawable-v3」という名前のディレクトリが必要であると読みました。それは本当ですか、それともこの API レベルのフォールバックも「描画可能」ですか?

どんなヒントでも大歓迎です。

4

6 に答える 6

7

drawables フォルダー内の画像は mdpi 解像度であると想定されるため、他の画像を指定しないと拡大/縮小されます。

拡大された画像は解像度が低く、ぼやけて見えます。画像を縮小すると、ピクセルが欠落し、ギザギザに見えます。

したがって、あなたのアプリは 1 セットのデフォルト画像だけで「動作」しますが、多くのデバイスでは見栄えが悪くなります。さまざまなサイズの画像を作成することを強くお勧めします。これにより、すべてのデバイスで見栄えがよくなります。少し退屈ですが、難しくはありません。

xhdpi デバイスができるようになるまでそう長くはかからないので、そのうちに xhdpi デバイスも作成したくなるかもしれません。

これを読んだことがあると思います

于 2011-02-15T22:15:08.327 に答える
2

ドーナツ以前のデバイスをターゲットにする何らかの理由がない限り ( http://developer.android.com/resources/dashboard/platform-versions.htmlによると、現在デバイスの 4% のみ)、ビットマップを 1 つに配置する必要があります。 -Xdpi ディレクトリの。一般的な「drawable」ディレクトリは、互換性の理由から「drawable-mdpi」の同義語ですが、適切に作成された最新のアプリでは、設計された密度に一致するディレクトリにドローアブルを配置する必要があります。

于 2011-02-16T04:21:03.627 に答える
2

完全な答えではありませんが、大幅に縮小された画像は拡大された画像と同じくらい悪く見える可能性があり、通常は拡大された画像と同じように見えます(ただし、方法は異なります)。重大な情報損失の前に画像を縮小できます (線形法では約 50%、バイキュービック法では約 25% まで)。これが、ほとんどのプラットフォームが、各画面サイズに最適な画像を埋め込むことができる規則 (hdpi、mdpi など) を進化させた理由です。

于 2011-02-15T22:06:14.573 に答える
2

私は常に drawable/ を使用しており、BestBuy とすべての地元のワイヤレス ストアに行き、小さい/大きい/巨大な (タブレット) デバイスでアプリをテストすると、問題なく表示されます。

于 2011-02-15T22:22:30.647 に答える
0

res/drawable はフォールバックです

警告は、スケーリングが画像を劣化させるだけでなく、処理時間もかかることです。

API レベル 3 のドキュメントをまだ読んでいません。1/2 の回答で申し訳ありません

于 2011-02-15T22:08:39.670 に答える
-2

それだけの価値はありますが、Android の画像処理は面倒で信頼性が低いことがわかりました。さまざまな画面にさまざまなサイズの画像を含めるという概念により、画像で肥大化した大きなアプリケーション ファイルが生成されます。標準解像度の範囲に収まらない画面が既にあります。Android にスケーリングを処理させないことが最善であることがわかりました。ターゲットとする最小の画面のベース イメージを作成し、それを拡大して、大きな画面で通常の外観のイメージになるようです。これは、大画面専用の画像を作成した場合でも発生します。2 インチのサムスンの携帯電話からソニーのタブレットまで、すべてで動作するように思われる私の解決策は、高解像度で画像を作成し、Bitmap.createScaledBitmap() を使用して必要なサイズを取得することです。

注意: 私は Android を初めて使用するので、学ぶことがたくさんあります。

于 2012-02-25T00:32:08.947 に答える