Я работаю над Android-приложением, которое позволяет пользователям загружать изображения на мой сервер. На экране выбора я позволяю им масштабировать изображения с помощью пинча для увеличения, а затем они выбирают изображение, нажимая его. Во время его реализации я столкнулся с двумя проблемами.Android-масштабирование и проблема с касанием
Первой проблемой, с которой я столкнулся, было то, что я использовал OnClickListener
, чтобы определить, когда были нажаты изображения. Это мешало мне масштабировать изображения вверх или вниз, пока мои пальцы были над изображениями. Я реализовал это следующим образом:
setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
ToggleSelection();
invalidate();
}
});
Так как я хочу, чтобы они по-прежнему иметь возможность масштабировать изображения даже пальцы над изображениями, я решил пойти с моим вторым подходом. Вместо этого я добавил 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
, который работает. Вид.
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я иду на масштаб изображения, если мои пальцы касаются одного из изображений, он переключает выбор, который может стать действительно раздражающим.
Я хотел бы быть в состоянии сделать один из двух вещей:
использовать OnClickListener
но позволяет мой ScaleGestureDetector
масштабировать изображения, даже если мои пальцы касаются изображений
или
Сделайте OnTouchListener
работой с MotionEvent.ACTION_UP
, чтобы я знал, что они не масштабируются, когда он получает событие касания.
Любые предложения?