// 触摸事件
@Override
public boolean onTouchEvent(MotionEvent event) {
if (false == this.is_initialized()) {
return false;
}
try {
PointF point_s = new PointF();
point_s.x = event.getX();
point_s.y = event.getY();
int x = (int) point_s.x;// Float.to( event.getX() );
int y = (int) point_s.y;// Float.floatToIntBits( event.getY() );
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
m_pressPt.set(x, y);
mode = DRAG;
break;
case MotionEvent.ACTION_UP:
if (mode == DRAG) {
int px = x - m_pressPt.x;
int py = y - m_pressPt.y;
if (px != 0 && py != 0) {
m_naviEngine.SetCenter(480 - px, 270 - py);
}
}
mode = NONE;
break;
case MotionEvent.ACTION_POINTER_UP:
if (mode == ZOOM) {
float newDist = spacing(event);
if (newDist > 10f) {
float scale = newDist - oldDist;
if (scale > 0) {
m_levelIndex = getLevelIndex();
// 设置当前比例尺
if (m_levelIndex < m_level.length - 1) {
m_levelIndex++;
m_naviEngine.SetLevel(m_level[m_levelIndex]);
m_btnZoomOut.setEnabled(true);
if (m_levelIndex == m_level.length - 1) {
m_btnZoomIn.setEnabled(false);
}
// 更新信息弹出框
// showPopSign();
}
} else {
m_levelIndex = getLevelIndex();
// 设置当前比例尺以及按钮状态
if (m_levelIndex > 0) {
m_levelIndex--;
m_naviEngine.SetLevel(m_level[m_levelIndex]);
m_btnZoomIn.setEnabled(true);
if (m_levelIndex == 0) {
m_btnZoomOut.setEnabled(false);
}
// 更新信息弹出框
// showPopSign();
}
}
}
}
break;
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
if (oldDist > 10f) {
mode = ZOOM;
}
break;
}
} catch (UnsatisfiedLinkError e) {
return false;
}
return m_gestureScanner.onTouchEvent(event);
}
Android2.2.3 实现多点缩放功能
最新推荐文章于 2021-01-13 14:13:22 发布