2012-04-24 11 views
0

私のアプリは、半径がコード内で35ピクセルと指定された丸いボールで構成されています。ユーザミューズは、ボールが他のボールと衝突するのを防止する。解像度の独立性を達成するために画像をどのようなサイズに調整するのですか

私はこのイメージのビットマップとして使用する72 ppi解像度の800 pxベクトルグラフィックを描画しました。

drawable-ldpi、-mdpi、および-hdpiフォルダの画像をどのようなサイズにすると、ビットマップがすべてのデバイスで同じサイズになり、衝突検出が正常に動作するようになりますか?アプリはボールを35ピクセルと計算しますが、画面にはより小さいまたは大きな画像が表示されるため、衝突がすべて間違っているため、ユーザーは何が起こっているのかわからなくなります。

私は本当にこれについて多くのことを知らないので、どんな助けも大いに評価されるでしょう。 android developer guideから

答えて

2

:4:6:8スケーリング比 4つの一般 密度の間

が異なる密度のための代替描画可能ビットマップを作成するには、 3に従ってください。あなたは中密度画面(ランチャーアイコンのサイズ)のために48×48 ピクセルだビットマップ描画可能を持っている場合たとえば、すべての 異なるサイズは次のようになります。

また
36x36 for low-density 
48x48 for medium-density 
72x72 for high-density 
96x96 for extra high-density 

、最高の1複数の画面解像度をサポートするためのプラクティスは、「アプリケーションコードにハードコードされたピクセル値を使用しない」です。

アプリケーションでは、実行時にピクセル値を扱うため、そのセクションのAdditional Density Considerations以下のセクションを参照してください。

+0

そのリンクは洞察力がありましたが、いくつかの混乱があります。私はhdpiイメージだけを提供し、他のイメージは提供しないと仮定します。アプリケーションがmdpiデバイス上で実行されている場合、アプリケーションは自動的にイメージを縮小します。それは私が各画像のために別々のスケーリングを行う必要はないという意味ではありませんか?私はこれがまた、より少ないメモリを消費するだろうと思う。または、これは最良の結果のために行われ、メモリはトレードオフですか? –

+0

そして、この画像をhdpi比率に拡大すると、BitmapFactory inDensityプロパティを使用して密度プロパティを明示的に指定する必要があることを明確にしたいだけです。 –

+0

hdpiイメージのみを提供し、アプリケーションをmdpiデバイス上で実行すると、アプリケーションは自動的にイメージを縮小します。同様に、mdpiイメージのみを持ち、hdpiデバイス上でアプリケーションを実行すると、アプリケーションはイメージを拡大します。スケーリングは画像にアーチファクトを発生させる可能性があります。そのため、画像が最もよく見えるように、別の画面解像度の代替バージョンを含める必要があります。いくつかの記憶を保存するかもしれませんが、間違いなくあなたに最高の結果を与えることはありません。 最後のコメントであなたの質問について私は確信していません... – dennisg

関連する問題