Android DragImageView实现下拉拖动图片放大效果
Android DragImageView实现下拉拖动图片放大效果 Android DragImageView是一个自定义的ImageView组件,用于实现下拉拖动图片放大效果。该组件继承自RelativeLayout,并在其中添加了一个ImageView。通过Touch事件来改变ImageView的缩放,缩放时计算scale,使其在手指移动到屏幕底部时,图片底部也刚好到达屏幕底部,手指松开时,图片逐步回弹。 DragImageView的主要类是DragScaleImageView,继承自RelativeLayout。它具有以下几个重要的成员变量: * mContext:Context对象,用于获取屏幕尺寸和其他 Context 相关信息。 * attrs:AttributeSet对象,用于获取XML布局文件中的属性。 * displayWidth和displayHeight:屏幕的宽度和高度。 * mImageId:图片的资源ID。 * bmp:Bitmap对象,用于存储图片。 * imageView:ImageView对象,用于显示图片。 * isBacking:布尔值,用于标记是否处在回弹状态。 * matrix、currentMatrix和defaultMatrix:Matrix对象,用于记录图片的缩放和拖拉信息。 * imgHeight和imgWidth:图片的宽高。 * mode:整数值,用于标记当前的拖拉模式。 * MODE_DRAG:整数值,用于表示拖拉照片模式。 * scaleY:浮点数值,用于记录图片的缩放比例。 * startPoint:PointF对象,用于记录开始时候的坐标位置。 * startRawY:浮点数值,用于记录开始时候的Y坐标位置。 * scale:浮点数值,用于记录图片的缩放比例。 * touchEventListener:TouchEventListener对象,用于处理Touch事件。 * backScaleListener:BackScaleListener对象,用于处理回弹动画。 DragScaleImageView的构造函数中,首先初始化了成员变量,然后获取屏幕的宽度和高度,最后初始化ImageView对象。 在onTouchEvent方法中, DragScaleImageView处理了Touch事件,包括DOWN、MOVE和UP事件。在DOWN事件中,记录开始时候的坐标位置和Y坐标位置。在MOVE事件中,计算图片的缩放比例和拖拉信息,並更新图片的显示。在UP事件中,判断是否处在回弹状态,如果是,则开始回弹动画。 在回弹动画中,使用Handler对象来处理动画的帧率,并使用Matrix对象来记录图片的缩放和拖拉信息。当动画结束时,图片将逐步回弹到原始状态。 DragImageView是一个功能强大且灵活的自定义组件,能够实现下拉拖动图片放大效果,并且具有良好的可扩展性和灵活性。
- 粉丝: 7
- 资源: 935
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助