PinchImageView.java 文件源码

java
阅读 40 收藏 0 点赞 0 评论 0

项目:SweepRobot 作者:
/**
 * 对图片按照一些手势信息进行缩放
 *
 * @param scaleCenter mScaleCenter
 * @param scaleBase mScaleBase
 * @param distance 手指两点之间距离
 * @param lineCenter 手指两点之间中点
 *
 * @see #mScaleCenter
 * @see #mScaleBase
 */
private void scaleAndRotate(PointF scaleCenter, float scaleBase, float distance, PointF lineCenter,float degree) {
    if (!isReady()) {
        return;
    }
    //计算图片从fit center状态到目标状态的缩放比例
    float scale = scaleBase * distance;
    Matrix matrix = MathUtils.matrixTake();
    //按照图片缩放中心缩放,并且让缩放中心在缩放点中点上
    matrix.postScale(scale, scale, scaleCenter.x, scaleCenter.y);
    //按照图片缩放中心旋转,并且让缩放中心在缩放点中点上
    matrix.postRotate(degree,scaleCenter.x,scaleCenter.y);
    //让图片的缩放中点跟随手指缩放中点
    matrix.postTranslate(lineCenter.x - scaleCenter.x, lineCenter.y - scaleCenter.y);
    //应用变换
    mOuterMatrix.set(matrix);
    MathUtils.matrixGiven(matrix);
    dispatchOuterMatrixChanged();
    //重绘
    invalidate();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号