0

写真が表示されるアプリを作成しようとしています。ユーザーが識別する必要のあるオブジェクトがいくつかあります (カップなど)。画面上の写真のカップに触れると、有効な場合は円が描画されます。 .

これまでのところ、ビットマップを描画可能にして全画面表示できるサーフェスビューがあり、画面に触れるとビューに円が描画されます。

写真でカップの座標を手動で取得することしか考えられず(ハードコード)、タッチevent.getX()event.getY(). ただし、画面の解像度が変更されると、これは機能しません。

そうするためのより良い方法は何ですか?アプリで定義した特定の領域へのタッチを正確に許可する方法を見つけようとしているようです。

4

3 に答える 3

1

提案どおりに座標を保存できますが、SurfaceView のサイズと BitmapDrawable のサイズに基づいて調整できます。たとえば、特定の領域が左から 100 ピクセルであることがわかっている場合、スケールを surfaceView.getWidth() / bitmapDrawable.getIntrinsicWidth() として取得できます。スケールに値 (100px) を掛けて、最終的な位置を取得します。画像で同じ縦横比を維持している場合は、2 つのうち大きい方 (幅と高さ) からスケールを取得し、高さと幅に同じスケールを使用する必要があります。

于 2011-01-11T04:23:54.667 に答える
0

特定の解像度では、カップの位置が固定されているか、そこでも変化します。

また、向き(横、縦)はどうですか?それに応じて場所も変わるのですか?

標準的な解像度があるので、いつでも位置を解像度でマッピングすることを考えることができます。

また、X、Y 座標を取得し、カップ画像の高さと幅に基づいて範囲内にあるかどうかを確認できます。

于 2011-01-11T04:21:18.427 に答える
0

まず、画面のサイズ(画面寸法)を調べます。

次に、画面領域に相対的に対応するオブジェクトを配置します。

例えば。SCREENWIDTH - 60 にカップを置いて、同様にタッチの座標を確認します。

于 2011-01-11T06:38:06.793 に答える