1

さまざまなデバイスとその画面をサポートするときに問題が発生しました。グリッドに 70px*70px のアイコンをたくさん描くゲームがあります。

.png ファイルは 70*70 @ 315ppi です。

私の Java コードでは、次のコードを使用して画像をグリッドに描画します。

for (int x = 0; x < Map.getxSize(); x++) {
        for (int y = 0; y < Map.getySize(); y++) {
            ballSprite.setX(x*70);
            ballSprite.setY(y*70);
            ballSprite.setCurrentFrame(Map.mArray[x][y]-1); //-1 because 0 field is empty
            ballSprite.onDraw(canvas);
        }
    }

(x*70) は Galaxy Nexus でうまく動作しますが、hdpi 800 のデバイスでテストすると、70px の値が高すぎます。

この値をさまざまな画面に適応させる最善の方法は何ですか? 助けてくれてありがとう!

4

2 に答える 2

4

X と Y に適切な倍率を掛けます。

Display display = getWindowManager().getDefaultDisplay(); 
int currentWidth = display.getWidth();  
int currentHeight = display.getHeight();

float scaleX = width that application was written for (in your case Galaxy Nexus width) / currentWidth  .
float scaleY = height that application was written for (in your case Galaxy Nexus height) / currentHeight .

ballSprite.setX(x*70*scaleX) など...

于 2012-07-20T14:43:23.887 に答える