Android2.2.3 实现多点缩放功能

// 触摸事件
	@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);
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值