1

Androidで2Dゲームをやっていますが、すべてうまくいきます。問題は、キャラクターが私の携帯電話 (Xperia) では非常に速く動くことですが、画面がはるかに広い携帯電話では、キャラクターの動きが非常に遅くなります。画面の幅を取得して100で割ってステップとして設定しようとしたので、キャラクターは幅に応じてステップを持つようになりましたが、うまくいきませんでした。何らかのスケーリングされたピクセルなどを取得する方法はありますか。助けに感謝します:)

これが私がそれをする人です:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;

アイデア?

4

3 に答える 3

1

これは私にとってはうまくいきます。

int height = Resources.getSystem().getDisplayMetrics().heightPixels;
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
于 2012-07-02T16:35:27.780 に答える
0

ステップ幅に。を掛けますdisplaymetrics.density。これにより、「px」値が「dp」値に効果的に変換されます。つまり、すべてのデバイスで同じ物理幅である必要があります。

于 2012-07-02T16:28:40.587 に答える
0

デフォルトの160に応じた密度スケールが必要です。これは乗数であり、ピクセル単位で高さと幅を取得するときに、コードでこの乗数を使用して正しくスケーリングできます。

以下にリンクされている開発者ページの密度のセクションを参照してください。

http://developer.android.com/reference/android/util/DisplayMetrics.html#density

于 2012-07-02T16:29:22.337 に答える