reformat code & optimize import & rearrange code

This commit is contained in:
CsHeng
2017-05-19 10:54:54 +08:00
parent 0c1b48cee2
commit 9369218821
622 changed files with 20567 additions and 18549 deletions

View File

@ -1,15 +1,21 @@
package com.gh.common.view;
import android.content.Context;
import android.graphics.*;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.*;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.ScaleGestureDetector.OnScaleGestureListener;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.view.ViewTreeObserver;
@SuppressWarnings("deprecation")
public class CropImageZoomView extends AppCompatImageView implements
@ -88,6 +94,16 @@ public class CropImageZoomView extends AppCompatImageView implements
this.setOnTouchListener(this);
}
/**
* 获得当前的缩放比例
*
* @return
*/
public final float getScale() {
mScaleMatrix.getValues(matrixValues);
return matrixValues[Matrix.MSCALE_X];
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scale = getScale();
@ -122,6 +138,47 @@ public class CropImageZoomView extends AppCompatImageView implements
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
/**
* 边界检测
*/
private void checkBorder() {
RectF rect = getMatrixRectF();
float deltaX = 0;
float deltaY = 0;
int width = getWidth();
int height = getHeight();
// 如果宽或高大于屏幕,则控制范围 ; 这里的0.001是因为精度丢失会产生问题但是误差一般很小所以我们直接加了一个0.01
if (rect.width() + 0.01 >= width - 2 * mHorizontalPadding) {
if (rect.left > mHorizontalPadding) {
deltaX = -rect.left + mHorizontalPadding;
}
if (rect.right < width - mHorizontalPadding) {
deltaX = width - mHorizontalPadding - rect.right;
}
}
if (rect.height() + 0.01 >= height - 2 * mVerticalPadding) {
if (rect.top > mVerticalPadding) {
deltaY = -rect.top + mVerticalPadding;
}
if (rect.bottom < height - mVerticalPadding) {
deltaY = height - mVerticalPadding - rect.bottom;
}
}
mScaleMatrix.postTranslate(deltaX, deltaY);
}
/**
* 根据当前图片的Matrix获得图片的范围
*
@ -138,15 +195,6 @@ public class CropImageZoomView extends AppCompatImageView implements
return rect;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
@Override
public boolean onTouch(View v, MotionEvent event) {
@ -214,13 +262,14 @@ public class CropImageZoomView extends AppCompatImageView implements
}
/**
* 获得当前的缩放比例
* 是否是拖动行为
*
* @param dx
* @param dy
* @return
*/
public final float getScale() {
mScaleMatrix.getValues(matrixValues);
return matrixValues[Matrix.MSCALE_X];
private boolean isCanDrag(float dx, float dy) {
return Math.sqrt((dx * dx) + (dy * dy)) >= mTouchSlop;
}
@Override
@ -295,49 +344,6 @@ public class CropImageZoomView extends AppCompatImageView implements
getWidth() - 2 * mHorizontalPadding);
}
/**
* 边界检测
*/
private void checkBorder() {
RectF rect = getMatrixRectF();
float deltaX = 0;
float deltaY = 0;
int width = getWidth();
int height = getHeight();
// 如果宽或高大于屏幕,则控制范围 ; 这里的0.001是因为精度丢失会产生问题但是误差一般很小所以我们直接加了一个0.01
if (rect.width() + 0.01 >= width - 2 * mHorizontalPadding) {
if (rect.left > mHorizontalPadding) {
deltaX = -rect.left + mHorizontalPadding;
}
if (rect.right < width - mHorizontalPadding) {
deltaX = width - mHorizontalPadding - rect.right;
}
}
if (rect.height() + 0.01 >= height - 2 * mVerticalPadding) {
if (rect.top > mVerticalPadding) {
deltaY = -rect.top + mVerticalPadding;
}
if (rect.bottom < height - mVerticalPadding) {
deltaY = height - mVerticalPadding - rect.bottom;
}
}
mScaleMatrix.postTranslate(deltaX, deltaY);
}
/**
* 是否是拖动行为
*
* @param dx
* @param dy
* @return
*/
private boolean isCanDrag(float dx, float dy) {
return Math.sqrt((dx * dx) + (dy * dy)) >= mTouchSlop;
}
public void setHorizontalPadding(int mHorizontalPadding) {
this.mHorizontalPadding = mHorizontalPadding;
}