private void adjustCanvasForBorder(Canvas canvas) {
float[] values = new float[9];
canvas.getMatrix().getValues(values);
float scaleFactorX = values[0];
float scaleFactorY = values[4];
float translateX = values[2];
float translateY = values[5];
float newScaleX = this.mBounds.width() / ((this.mBounds.width() + this.mBorderWidth)
+ this.mBorderWidth);
float newScaleY = this.mBounds.height() / ((this.mBounds.height() + this
.mBorderWidth) + this.mBorderWidth);
canvas.scale(newScaleX, newScaleY);
if (ScaleType.FIT_START == this.mScaleType || ScaleType.FIT_END == this.mScaleType ||
ScaleType.FIT_XY == this.mScaleType || ScaleType.FIT_CENTER == this
.mScaleType || ScaleType.CENTER_INSIDE == this.mScaleType || ScaleType.MATRIX
== this.mScaleType) {
canvas.translate(this.mBorderWidth, this.mBorderWidth);
} else if (ScaleType.CENTER == this.mScaleType || ScaleType.CENTER_CROP == this
.mScaleType) {
canvas.translate((-translateX) / (newScaleX * scaleFactorX), (-translateY) /
(newScaleY * scaleFactorY));
canvas.translate(-(this.mBounds.left - this.mBorderWidth), -(this.mBounds.top -
this.mBorderWidth));
}
}
SelectableRoundedImageView.java 文件源码
java
阅读 45
收藏 0
点赞 0
评论 0
项目:boohee_v5.6
作者:
评论列表
文章目录