1

OnTouchListenerカスタムビューにを実装しています。このビューでは、基本的にx軸とy軸に沿って移動するオブジェクトを描画していevent.getX();ますevent.getY();

draw画面の特定の位置でタッチイベントが発生したときに、いくつかの変更を実行したいと思います。問題は、画面サイズによって値が異なることです。たとえば、 WVGAデバイスのポイントのX値は60で、タブレットの場合は100です。これは一貫性がないため、適切な条件を記述できませんでした。if

あなたの以前の経験から、誰かがこれに対する解決策を提案できますか?

4

3 に答える 3

1

タッチ イベントを受信する基本的な画面サイズを 800 x 600 に設定できます。次に、デバイスの実際の解像度を取得し、それによって基本量をスケーリングできます。つまり、X サイズは (800/デバイス幅) となり、デバイス画面のタッチ座標をこの倍率で掛けて、「翻訳された」バージョンを取得します。

于 2012-07-05T15:24:53.880 に答える
1

どのデバイスの解像度も取得できます。画面の getWidth() と getHeigth() を取得するようなことができます。次に、幅/2と高さ/2のロジックを設定できます->画面の左上部分が表示されます。このようなことをしてください。

于 2012-07-05T15:36:08.610 に答える
0

私は基本的に両方の答えで良いアイデアを得ました、(私の敬意)しかし私のために働いた解決策は以下の通りです。アイデアは、ChintanRaghwaniによる手がかりからです。

したがってposition x、デバイス画面の値がview全幅に掛けられた値に等しいとしましょうpercentage

例:posX = getMeasuredWidth() * 0.5中央で処理されるタッチイベントを提供します。この方法でオブジェクトを配置すると、すべてのデバイスで一貫性が保たれます。

それが誰かを助けることを願っています:)

編集 :

この投稿を見つけるのに十分幸運です。これは上記のプロセスであり、黄金比とも呼ばれます。 これは本当に素晴らしい投稿です。

于 2012-07-06T14:38:05.213 に答える