public void scale(float scale, boolean checkScale) { Log.i( TAG, "Before setScale scale = " + scale + " getMaxScaleValue = " + getMaxScaleValue() + " getMinScaleValue = " + getMinScaleValue()); if (checkScale) { float scaleValue = mCurrentScaleValue * scale; // check max scale value if (scale > 1) { scale = scaleValue > getMaxScaleValue() ? 1f : scale; } // check minimal scale value if (scale < 1) { scale = scaleValue < getMinScaleValue() ? 1f : scale; } mCurrentScaleValue = mCurrentScaleValue * scale; } Log.i(TAG, "setScale mCurrentScaleValue = " + mCurrentScaleValue); mAnimationMatrix.reset(); mAnimationMatrix.setScale(scale, scale, mRectF.centerX(), mRectF.centerY()); mAnimationMatrix.mapRect(mRectF); setVetex(mRectF.left, mRectF.top, mRectF.right, mRectF.bottom); mOriginalDistance = (float) Math.sqrt( (centerX() - rightBottom[0]) * (centerX() - rightBottom[0]) + (centerY() - rightBottom[1]) * (centerY() - rightBottom[1])); Log.i(TAG, "After setScale scale = " + scale); }
public void translate(float dx, float dy, boolean checkTranslate) { mAnimationMatrix.reset(); mAnimationMatrix.setTranslate(dx, dy); mAnimationMatrix.mapRect(mRectF); if (checkTranslate) { checkTranslate(); } setVetex(mRectF.left, mRectF.top, mRectF.right, mRectF.bottom); }
public void initialize(float mLeft, float mTop, float mRight, float mBottom) { mRectF.set(mLeft, mTop, mRight, mBottom); setVetex(mRectF.left, mRectF.top, mRectF.right, mRectF.bottom); mOriginalDistance = (float) Math.sqrt( (centerX() - rightBottom[0]) * (centerX() - rightBottom[0]) + (centerY() - rightBottom[1]) * (centerY() - rightBottom[1])); }
public void rotate(float degrees, float centerX, float centerY) { Log.i(TAG, "setRotate"); setVetex(mRectF.left, mRectF.top, mRectF.right, mRectF.bottom); mAnimationMatrix.reset(); mAnimationMatrix.setRotate(degrees, centerX, centerY); mAnimationMatrix.mapPoints(leftTop); mAnimationMatrix.mapPoints(rightTop); mAnimationMatrix.mapPoints(leftBottom); mAnimationMatrix.mapPoints(rightBottom); mCurrentRotationValue = degrees; }