Android ImageView图片拖动效果

直接用了 Android GPS 定位 3 详细地址周边地图图片 中的工程修改的,通过ImageView.setOnTouchListener方法实现及对ImageView的矩阵进行平移变换来实现的。先把获取到的图的尺寸改大些。

String sURL = "http://maps.googleapis.com/maps/api/staticmap?center="
					+ location.getLatitude()
					+ ","
					+ location.getLongitude()
					+ "&zoom=15&size=1500x1500&sensor=false";

之后再设置监听

addressImg.setOnTouchListener(touchListen);

对矩阵进行平移变换

private OnTouchListener touchListen = new OnTouchListener() {

		public boolean onTouch(View v, MotionEvent event) {

			switch (event.getAction()) {
			case MotionEvent.ACTION_DOWN:
				startX = event.getX();
				startY = event.getY();
				flag = true;
				break;
			case MotionEvent.ACTION_MOVE:
				if (flag) {
					//通过平移ImageView的矩阵来实现拖动效果
					matrix.set(addressImg.getImageMatrix());

					Log.d(TAG,
							"" + (event.getX() - startX) + ","
									+ (event.getY() - startY));
					matrix.postTranslate((event.getX() - startX) / 15,
							(event.getY() - startY) / 15);
					//除了15纯粹是为了降低图片拖动时的速度
					addressImg.setScaleType(ScaleType.MATRIX);
					addressImg.setImageMatrix(matrix);
				}
				break;
			}
			return true;
		}
	};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值