我正在尝试将使用外部蓝牙设备绘制的路径缩放到我的Android设备屏幕的大小...因此,如果有人在设备的顶部绘制,那么就说,一个圆圈,设备上会显示一个巨大的圆圈,但如果有人然后在设备的底部绘制,则刻度将使得两个圆圈都显示在屏幕的顶部和底部。我有两次尝试。两者都不起作用......
这是一个
public Path fit()
{
RectF selfBounds = new RectF();
mPath.computeBounds(selfBounds, false);
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
int height = Resources.getSystem().getDisplayMetrics().heightPixels;
RectF intoBounds = new RectF(0, 0, width,height);
float sw = intoBounds.width()/ selfBounds.height();
float sh = intoBounds.height() / selfBounds.width();
float factor = (float) Math.min( 5.0, Math.min(sw, Math.max(sh, 0.0 ) ) ) ;
Matrix x = new Matrix();
x.setScale(factor, factor);
mPath.transform(x);
return mPath;
}
这是两个
scaleMatrix.setRectToRect(pathBounds, screenBounds, Matrix.ScaleToFit.CENTER);
newPath.transform(scaleMatrix);
非常感谢帮助!