2010-12-01 29 views
2

アンドロイドで複数画面のサポートに関する混乱があります。アンドロイドデベロッパーフォーラムでマルチスクリーンサポートの記事を読んだ。私の質問は、アプリがデバイス画面にフルスクリーンで表示する必要がある15-20イメージがある場合です。今私はすべての画面をサポートしたい場合、3つのドロウアブルフォルダldpi、mdpi & hdpiに入れなければならないものは何ですか?ここで私はLDPIでアンドロイドで複数の画面をサポートする場合の画像

をやっていること - 320x480のreolution hdpiの画像 - - 720x800解像度の画像を240×320の解像度 MDPIの画像を。 (私は3つの解像度すべてで同じ濃度を使用しています) これは正しいアプローチではないと思います。

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

よろしく、 Anuj

+0

http://stackoverflow.com/questions/13659682/how-to-resize-an-image-to-fit-multiple-screen-densitiesそこには良いオプションがいくつかあります。私のやり方とby codeの方法。アプリケーションのサイズをコードの方法で保存すると、おそらくそのアプリケーションにとって最適です。 –

答えて

1

理想的には、画面ごとに異なる密度のドロアブルを用意する必要があります。画像に記載されているサイズを使用できます。しかし、高解像度の画像だけを提供することもでき、ユーザーのデバイス画面の密度に合わせて縮小されます。

画像をフルスクリーンで表示したい場合は、横長画像と縦長画像、長めの画像と長めの画像で異なるバージョンの画像を用意する必要があります。

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

+0

返信いただきありがとうございます。私は大きな解像度のhdpiイメージのみを使用する場合、彼らは中画面で圧縮されて見えません。私は480x800の解像度の画像を使用しようとしましたが、320x480の画像のmdpi画面に表示されているときに圧縮されて見え、水平の線があります。 – anujprashar

+0

画像に縮尺があるので、アーティファクトが存在する可能性があります。 – Michael

3

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

画像を画面の正確なサイズにする必要のあるレイアウトを使用しないでください。代わりに、そのターゲット密度(例:500x900)の解像度の大部分を超える画像を提供するか、余分な余白が残ってしまうことがあります(印刷のコンセプトに精通している場合は、それを流しとみなす)。

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

各画面の解像度ごとに異なる画像を使用する方が難しい(とはるかに効率が悪い)方法と、画面の寸法を取得し戻った値に従って画像を設定するonCreate()のメソッド。

+0

お返事ありがとうございます。私は、すべての解像度(480x800と320x480)の画像を単一のドロウアブルフォルダに置くことを考えています。また、Androidのリソースエイリアシングを使用して、デバイスの設定ごとにイメージを使用します。 – anujprashar

+0

あなたがそのルートに行く場合は、それらをすべてメインのドロウアブルフォルダに入れないでください。 480x800をdrawable-hdpi、640x480をmdpi、320x480をldpiフォルダなどに入れて、それらの名前をすべて同じにします。次に、そのドロアブルをコードで参照すると、Androidはデバイスの解像度に応じて適切なイメージを選択し、それに応じて拡大縮小します。 – kcoppock

関連する問題