4

私はアンドロイドゲームを作っています。アプリケーションを Galaxy sII でテストします。私は多くの進歩を遂げました。残念ながら、他のデバイスでのテストは無視しました。異なるタイプのデバイスでは異なる解像度の問題が発生することはわかっていました。しかし、座標値を整理することで対処できると思いました。しかし、今ではそれが非常に難しい作業であることがわかりました。かなり多くのコードを書いたので、出発点に戻ることはできません。

私の質問は、800x480の値を指定したにもかかわらず、キャンバスを他の解像度に拡大/縮小できる方法はありますか?

PS:Canvas canvas = holder.lockCanvas();スレッドでキャンバスを取得します。

ありがとう

4

3 に答える 3

1

できることは、キャンバスへの描画をビューとして使用し、xmlでレイアウトパラメータを設定することです。これにより、キャンバスビューを各解像度で動的に最小限の労力で変更できます。

SurfaceViewのように。

于 2013-03-16T16:18:19.647 に答える
1
    canvas.scale(float scaleX, float scaleY). Try this.

ドキュメントのヒントも考慮してください。http://developer.android.com/guide/practices/screens_support.html

于 2013-03-16T16:20:46.010 に答える
1

私はこの問題について完全に理解できるわけではありませんが、Canvas でマトリックス変換を行うことができるはずです。この同様の質問が出発点になるかどうかを確認してください。また、ウィキペディアでこの問題について読んでください。

編集:これにより、オブジェクトまたはオブジェクトの一部が画面の外に配置されたり、遠近法の問題が発生したりする可能性があることに気づきました...

于 2013-03-16T15:24:27.897 に答える