0

フルスクリーンのゲームを作成しています。背景に画像を使用しており、その上に画像を描画しています。背景画像はすべてのデバイスで見栄えがしますが、オーバーレイ画像をすべてのデバイスで同じ場所に描画することはできません。

たとえば、私が使用する場合

canvas.drawBitmap(overlay, 365, 85, paint);

幅が 854px の携帯電話に合わせて画像を完全に揃えます。しかし、それよりも低いものは、右に押し出されます。

ディップで遊んでみましたが、それを理解できないようです。すべての解像度でアイテムが正しく並んでいることを確認できる場所はありますか?

4

2 に答える 2

1

1.6以上をターゲットにしていると思います。すべてのデバイスで背景が正常に見える理由は、Androidがリソースをデコードするときに、リソースをターゲットの画面密度に合わせて自動的にスケーリングするためです。これを防ぐには、代わりにリソースを「drawable-nodpi」に配置するか(このディレクトリを作成する必要があります)、または適切なオプションをデコードビットマップ関数に渡します(ドキュメントを確認してください)。すべてのビットマップを手動でスケーリングする必要があります。他の2つの答えは正しい考えであり、画面サイズを取得してすべてのピクセル値を計算します。定数は絶対に使用しないでください。

于 2011-01-04T14:41:19.273 に答える
1

このようにしたい場合は、おそらく画面のサイズに基づいて位置を計算する必要があります。

これらは、次のようなものを使用して見つけることができます。

   DisplayMetrics dm = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(dm);
   wPix = dm.widthPixels;
   hPix = dm.heightPixels;
于 2011-01-04T12:29:09.850 に答える