ユーザーがサーバーに画像をアップロードできるようにするAndroidアプリに取り組んでいます。選択画面では、ピンチで画像を拡大縮小してから、画像をタップして選択します。実装中に2つの問題に遭遇しました。
最初に遭遇した問題はOnClickListener
、画像がクリックされたことを検出するために を使用していたときでした。そのため、指が画像の上にある限り、画像を拡大または縮小できませんでした。私は次のように実装しました:
setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
ToggleSelection();
invalidate();
}
});
画像の上に指を置いても画像を拡大縮小できるようにしたいので、2 番目のアプローチを採用することにしました。代わりに追加しましたOnTouchListener
。
setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
int i = event.getAction();
Log.d("TouchInfo123","Event action: " + i);
switch(i & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_UP:
{
ToggleSelection();
invalidate();
break;
}
}
return false;
}
});
event.getAction()
次に、 が の値である 0 を常に返すことに気付きましたMotionEvent.ACTION_DOWN
。そこで、動作するのをリッスンすることに切り替えましたMotionEvent.ACTION_DOWN
。すこし。
私が今直面している問題は、画像を拡大縮小するときに、指が画像の 1 つに触れると、選択が切り替わり、非常に煩わしいことです。
次の 2 つのいずれかを実行できるようにしたいと考えています。
を使用しますが、指が画像に触れていても画像をスケーリングOnClickListener
できるようにしますScaleGestureDetector
また
タッチイベントが発生したときにスケーリングされていないことがわかるように、 を使用してOnTouchListener
作業を行います。MotionEvent.ACTION_UP
助言がありますか?