質問

Androidでのマルチスクリーンサポートに関して混乱しています。 Android Developer Forumでマルチスクリーンサポートの記事を説明しました。私の質問は、アプリに15〜20の画像があり、デバイス画面にフル画面を表示する必要があるかどうかです。ここで、すべての画面をサポートしたい場合は、3つの描画可能なフォルダーLDPI、MDPI、およびHDPIに何を入れますか。ここで私がしたこと

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

正確に何をすべきですか?上記のように、描画可能なldpi、描画可能なmdpi&drawable-hdpiに異なる解像度の画像を置くか、異なる密度120 dpi、160 dpi、240 dpiの画像を使用する必要があります。さまざまな密度の画像を使用する場合、それらの解像度はどうあるべきか(120 dpi解像度は240x320、160 dpi解像度320x480および240 dpi解像度は480x800である必要があります)。または、さまざまなDPI画像を使用している場合、すべての密度について、それらの解像度は同じ(320x480)でなければなりません。

よろしく、アヌジ

役に立ちましたか?

解決

理想的には、さまざまなスクリーンに対して異なる密度のドローブルが必要です。画像に言及したサイズを使用できます。ただし、高DPI画像のみを提供することもでき、ユーザーのデバイス画面密度に合わせてダウンスケーリングされます。

また、画像をフルスクリーンに表示したい場合は、風景やポートレートの向き、長い画面ではなく、これらの画像の異なるバージョンを使用する必要があります。

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

他のヒント

Anujprashar、あなたの質問に対する簡単な答えはありません。異なる密度仕様(HDPI、MDPI、LDPI)は、平均密度の範囲を指します(つまり、HDPIは約240 ppi)。ただし、HDPIは多数の異なる解像度を参照できます(例:Motorola DroidはHDPI、解像度480x854、Nexus OneはHDPI、解像度480x800)。したがって、すべてのデバイスのフル画面を完全に適合させるために使用できる固定サイズの画像はありません。

私の提案は、可能な限り、画像を画面の正確なサイズにする必要があるレイアウトを使用しないか、代わりにそのターゲット密度の解像度の大部分(500x900など)の大部分よりも大きい画像を提供するかどうかです。トリミングされる可能性があります(印刷物の概念に精通している場合は、それを出血と考えてください)。

より簡単に言えば、元のピクセル解像度で1:1を表示する必要がない場合は、ImageViewのSCALETYPEを次のように設定できます。 centerCrop, 、およびその幅と高さ fill_parent. 。これにより、コンテナに合うように画像が拡張(または凝縮)し、アスペクト比が正しくない場合はピクセルを切り取ります。

より難しい(そしてはるかに効率的ではない)方法は、画面解像度ごとに異なる画像を持ち、OnCreate()に画面の寸法を取得し、戻ってきた値に従って画像を設定する方法があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top