У меня есть пользовательский вид с ScaleGestureDetector, на котором я хочу использовать щепотку для масштабирования. Он работает нормально, когда вид довольно большой, но когда он мал, только zomm работает правильно (я помещаю два пальца в вид и перемещаю их в разные стороны), когда я пытаюсь уменьшить масштаб (поместите два пальца в вид и перемещать вместе) ничего не происходит. Вот скриншот: Уменьшить масштаб на небольшом изображении с помощью ScaleGestureDetector
Проблема возникает в небольших видах, которые находятся в центре. В верхнем и нижнем увеличенных размерах zomm in и уменьшают работу.
код:
private class MyScaleGestureListener implements OnScaleGestureListener
{
public boolean onScale(ScaleGestureDetector detector)
{
scaleFactor *= detector.getScaleFactor();
if (scaleFactor < 1)
scaleFactor = 1;
int newScrollX = (int)((getScrollX() + detector.getFocusX()) * detector.getScaleFactor() - detector.getFocusX());
int newScrollY = (int)((getScrollY() + detector.getFocusY()) * detector.getScaleFactor() - detector.getFocusY());
scrollTo(newScrollX, newScrollY);
invalidate();
return true;
}
public boolean onScaleBegin(ScaleGestureDetector detector)
{
return true;
}
public void onScaleEnd(ScaleGestureDetector detector)
{
}
}
Как сделать уменьшение масштаба работу на небольших просмотрах?