0

市場でほとんどの解像度 (240x320、320x480、480x800、480x854、600x1024) をサポートする Android ゲームを開発しました。

私の問題は、タブレットをサポートしようとしているときです。その修飾子が役に立たないときに、Android がリソースを異なるフォルダー (hdpi、ldpi、mpdi、large-mdpi など) に分割する理由がわかりません! いくつかのグラフィック セット (幅に応じて) を持っていますが、たとえば、密度が mdpi または ldpi の 480x800 のタブレットでは気が狂いそうです。すべてのデバイスに到達することは不可能です。

それで、ドローアブル/ビットマップをフォルダーに分割する方法を知っていますが、解像度によってのみアクセスできますか?? はい、ビットマップ エイリアスは知っていますが、それは解決策ではありません。

ありがとう

4

1 に答える 1

3

画面サイズとピクセル密度を混ぜていると思います:

開発ガイドから:

  • プラットフォームは、必要に応じて、サイズと密度に固有のリソースを提供できる一連のリソース修飾子をサポートしています。サイズ固有のリソースの修飾子は、、、、smallおよびです。密度固有のリソースは、(低)、(中)、(高)、および(超高) です。修飾子は、上記の「サポートされる画面の範囲」で説明されている一般化された密度に対応しています。normallargexlargeldpimdpihdpixhdpi
  • このプラットフォームには、アプリケーションがサポートする一般化された画面サイズを指定できる属性、、、および<supports-screens>マニフェスト要素も用意されています。別の属性 android:anyDensity を使用すると、アプリケーションに複数の密度のサポートが組み込まれているかどうかを示すことができます。android:smallScreensandroid:normalScreensandroid:largeScreensandroid:xlargeScreens

編集:私のコメントを応答に追加しました。

コメントの例を使用すると、Archos は 7 インチの画面で、Nexus One は 3.7 インチの画面です。同じピクセル数で、Nexus One のピクセル密度は 2 倍です。dpi は 1 インチあたりのドット数を意味することを覚えておいてください。つまり、同じ画像が Archos では Nexus One よりも 2 倍大きくレンダリングされるということです。

画面サイズの違いはレイアウトで処理する必要がありますres/layout-normalNexus One とres/layout-largeArchos に使用します。このようにして、さまざまな画面サイズの完全なレイアウトを制御し (Archos で不必要に大きくなるウィジェットを制限する必要があるかもしれません)、ドローアブルの固定サイズを維持するか、拡張するかを決定します。必要。

または、画面サイズに関係なく、イメージを引き伸ばすことなくサイズを画面に比例させたい場合は、image1-normal.png、image2-normal.png、および image1-large.png という 2 つのイメージ セットを作成できます。およびの xml ファイルからアクセスする、res/drawable-mdpiおよびフォルダの両方にある image2-large.pngなど。res/drawable-hdpires/layout-normalres/layout-large

要約すると、すべての要件は、レイアウトとドローアブルの組み合わせで処理する必要があります。

  • ネクサス ワン: layout-normal,drawable-hdpi
  • アルコス 7 : layout-large,drawable-mdpi
  • ズーム: layout-xlarge,drawable-mdpi
于 2011-05-06T23:31:39.447 に答える