重新整理图片剪裁以便兼容后续视频封面更换

This commit is contained in:
kehaoyuan
2019-12-11 15:11:21 +08:00
parent 3a043b2704
commit 16de588c30
8 changed files with 248 additions and 166 deletions

View File

@ -6,7 +6,6 @@ import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import androidx.appcompat.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
@ -17,6 +16,8 @@ import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewTreeObserver;
import androidx.appcompat.widget.AppCompatImageView;
@SuppressWarnings("deprecation")
public class CropImageZoomView extends AppCompatImageView implements
OnScaleGestureListener, OnTouchListener,
@ -60,6 +61,10 @@ public class CropImageZoomView extends AppCompatImageView implements
*/
private int mVerticalPadding;// ——屏幕顶部离截图区的高度
private float mRatio = 1; // 宽高比
private int mWidth;
public CropImageZoomView(Context context) {
this(context, null);
}
@ -290,8 +295,10 @@ public class CropImageZoomView extends AppCompatImageView implements
Drawable d = getDrawable();
if (d == null)
return;
mWidth = getWidth() - 2 * mHorizontalPadding;
// 垂直方向的边距
mVerticalPadding = (getHeight() - (getWidth() - 2 * mHorizontalPadding)) / 2;
mVerticalPadding = (getHeight() - (int) (mWidth * mRatio)) / 2;
int width = getWidth();
int height = getHeight();
@ -339,13 +346,16 @@ public class CropImageZoomView extends AppCompatImageView implements
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
draw(canvas);
return Bitmap.createBitmap(bitmap, mHorizontalPadding,
mVerticalPadding, getWidth() - 2 * mHorizontalPadding,
getWidth() - 2 * mHorizontalPadding);
return Bitmap.createBitmap(bitmap,
mHorizontalPadding,
mVerticalPadding,
mWidth,
(getHeight() - mVerticalPadding * 2));
}
public void setHorizontalPadding(int mHorizontalPadding) {
public void setHorizontalPadding(int mHorizontalPadding, float ratio) {
this.mHorizontalPadding = mHorizontalPadding;
this.mRatio = ratio;
}
/**