2011-01-11 8 views
0

私は、画像が表示されるアプリケーションを作成しようとしています。ユーザーが識別する必要があるオブジェクト(カップ)がいくつかあります。それが有効であれば円が描画されます。タッチの妥当性を正確に確認する

これまでは、フルスクリーンで表示するための描画可能なビットマップを備えたサーフェイスビューを持っていました。画面に触れるとサークルが描画されます。

私はカップの座標を画像(ハードコード)に手動で入力して、event.getX()event.getY()の座標に照らして確認しました。しかし、これは画面の解像度が変わると機能しません。

どうすればよいでしょうか?それは、私がアプリで定義した特定の領域に正確に触れる方法を見つけようとしているようなものです。

+0

これまでのすべての回答に関して、アンドロイドはすべてのピクセル値を上下にスケールするので、コードは480x320と1.6とそれ以上で動作する必要があります。 –

答えて

1

提案したようにコードを保存できますが、SurfaceViewのサイズとBitmapDrawableのサイズに基づいて調整します。たとえば、指定された領域が左から100ピクセルの場合、scaleをsurfaceView.getWidth()/ bitmapDrawable.getIntrinsicWidth()とすることができます。最終的なポジションを得るために、スケールにあなたの値(100px)を掛けます。画像に同じアスペクト比を維持する場合は、2つのうち大きい方(幅と高さ)から縮尺を取得し、その同じ縮尺を高さと幅に使用する必要があります。

0

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

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

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

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

0

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

あなたの画面領域に比較的対応するオブジェクトを配置するようになりました。

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

それは間違いなく動作します。