2

Android でのマルチスクリーンのサポートに関して混乱しています。Android開発者フォーラムでマルチスクリーンサポートの記事を読みました。私の質問は、デバイスの画面に全画面表示する必要がある 15 ~ 20 個の画像がアプリにあるかどうかです。すべての画面をサポートしたい場合は、ldpi、mdpi、hdpi の 3 つの描画可能フォルダーに何を入れればよいでしょうか。ここで私がやったこと

ldpi - 解像度 240x320 の画像 mdpi - 解像度 320x480 の画像 hdpi - 解像度 720x800 の画像。(3 つの解像度すべてで同じ密度を使用しています) これは正しいアプローチではないと思います。

私は正確に何をすべきですか?上記のようにdrawable-ldpi、drawable-mdpi、drawable-hdpiに異なる解像度の画像を配置するか、120 dpi、160 dpi、240 dpiの異なる密度の画像を使用する必要があります。異なる密度の画像を使用する場合、その解像度はどうあるべきか (120 dpi 解像度は 240x320、160 dpi 解像度は 320x480、240 dpi 解像度は 480x800)。または、異なる dpi 画像を使用している場合、解像度はすべての密度で同じ (320x480) にする必要があります。

よろしく、 アヌジ

4

2 に答える 2

3

Anujprahar、あなたの質問に対する簡単な答えはありません。さまざまな密度の仕様 (hdpi、mdpi、ldpi) は、密度の平均範囲を参照しているだけです (つまり、hdpi は約 240 ppi です)。ただし、hdpi は多数の異なる解像度を参照できます (たとえば、Motorola Droid は hdpi、解像度 480x854、Nexus One は hdpi、解像度 480x800)。そのため、すべてのデバイスのフルスクリーンに完全に収まるように使用できる固定サイズの画像はありません。

私の提案は、可能な限り、画像が画面の正確なサイズである必要があるレイアウトの使用を避けるか、その代わりに、そのターゲット密度 (たとえば 500x900) の解像度の大部分よりも大きい画像を提供して、余分な余白を残してください。切り取られる可能性があります (印刷の概念に精通している場合は、裁ち落としと考えてください)。

もっと簡単に言えば、元のピクセル解像度で 1:1 で表示する必要がない場合は、ImageView の scaleType を にcenterCrop、幅と高さを に設定するだけfill_parentです。これにより、コンテナーに合わせて画像が拡大 (または縮小) され、縦横比が正しくない場合はピクセルが切り取られます。

より困難な (そしてはるかに効率の悪い) メソッドは、画面の解像度ごとに異なる画像を用意し、 onCreate() に画面の寸法を取得して、返された値に従って画像を設定するメソッドを用意することです。

于 2010-12-01T17:42:42.083 に答える
1

理想的には、画面ごとに密度の異なるドローアブルが必要です。あなたはあなたの画像のためにあなたが言及したサイズを使うことができます。ただし、高dpiの画像のみを提供することもでき、ユーザーのデバイスの画面密度に合わせて縮小されます。

また、画像をフルスクリーンで表示したい場合は、横向きと縦向き、および長い画面と長い画面ではなく、これらの画像の異なるバージョンが必要になる可能性があります。

ImageViewそして最後に、ウィジェットを使用して、さまざまなデバイスで適切な画像スケーリングを行うことができます。

于 2010-12-01T20:30:07.763 に答える