Android 利用Canvas实现双指拖动和双指缩放图片(二)-图片拖出边界检测
来源:互联网 发布:php文章管理系统 初学 编辑:程序博客网 时间:2024/06/09 16:39
以下这篇文章使用的双指拖动和缩放图片,现在要加上边界检测,防止图片拖出屏幕外边。始终使图片的一部分保留在屏幕内。
Android 利用Canvas实现双指拖动和双指缩放图片
http://blog.csdn.net/wb175208/article/details/53510427
/** * 移动时,防止图片移出屏幕 * 备注:图片的双指拖动是通过移动Bitmap在Canvas上的位置来实现的 * 图片的缩放是通过Canvas的缩放来实现Canvas上面的图片的一起缩放。 * 也就是说图片在实际Canvas的显示的比例是按照1:1放置的,看到的缩放效果是通过Canvas缩放从而带动图片的缩放效果 * 图片向左移动时,留在屏幕中的范围是图片的1/5 * 图片向右移动时,留在屏幕中的范围是屏幕的1/5 */ private float judgePositionX(float x, float sc) { float resX = x; if (x < 0 && ((mBitmapWidth + x) <= mBitmapWidth / 5)) { resX = -4 * mBitmapWidth / 5; mTransX = resX * sc - mCenterLeft; } else if (x * sc >= (4 * mViewWidth / 5)) { resX = (4 * mViewWidth / 5) / sc; mTransX = resX * sc - mCenterLeft; } else { resX = x; } return resX; } private float judgePositionY(float y, float sc) { float resY = y; if (y < 0 && ((mBitmapHeight + y) <= mBitmapHeight / 5)) { resY = -4 * mBitmapHeight / 5; mTransY = resY * sc - mCenterTop; } else if (y * sc >= 4 * mViewHeight / 5) { resY = (4 * mViewHeight / 5) / sc; mTransY = resY * sc - mCenterTop; } else { resY = y; } return resY; }
使用方法:
@Override protected void onDraw(Canvas canvas) {... canvas.scale(scale, scale); x = judgePositionX(x, scale); y = judgePositionY(y, scale);...}
0 0
- Android 利用Canvas实现双指拖动和双指缩放图片(二)-图片拖出边界检测
- Android 利用Canvas实现双指拖动和双指缩放图片
- 双指拖动缩放图片
- 自定义ImageView实现图片的拖动、缩放和边界回弹
- Android-实现图片的拖动和缩放
- Android实现图片的缩放和拖动
- Android 实现图片缩放和拖动
- Android手势:单指拖动、双指缩放图片
- Android手势:单指拖动、双指缩放图片
- 单指拖动、双指缩放图片
- android 手势触发图片缩放拖动(包含缩放图片时图片的大小判断以及拖动图片时图片的边界判断)
- android 手势触发图片缩放拖动(包含缩放图片时图片的大小判断以及拖动图片时图片的边界判断)
- Android基于多触控的图片缩放和拖动代码实现
- Android基于多触控的图片缩放和拖动代码实现
- android开发-图片缩放,拖动功能实现。
- Android实现图片随意拖动、缩放
- wpf实现图片拖动和缩放
- android Matrix图片的缩放和拖动
- Plsql developer插入中文乱码
- kettle下转移mongo中数据到mysql中
- Android.mk
- 【poj 1704】Georgia and Bob
- Mongdb 3.4 复制集 分片 官方默认配置 无认证 Windows环境
- Android 利用Canvas实现双指拖动和双指缩放图片(二)-图片拖出边界检测
- Android Studio在创建项目是一直处于building “project name”gradle project info的解决办法
- Hibernate正向工程
- spring全注解的方式构建web三层结构
- Android 简单实现贪吃蛇源码
- 【uml类图】《大话设计模式》摘抄
- jdbc连接数据库
- centos安装vsftp
- 为你详解Linux安装GCC方法