我正在开发图像编辑应用程序并卡在这里。
public void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
// int width=this.getDrawable().getIntrinsicWidth();
// int height=this.getDrawable().getIntrinsicHeight();
// float sw=((float)getBitmapRect().width())/width;
// float sh=((float)getBitmapRect().height())/height;
matrix = new Matrix();
// matrix.postScale(sw, sh);
canvas.setMatrix(getDisplayMatrix());
canvas.concat(matrix);
canvas.save();
if (MainActivity.checkBtnOn == MainActivity.BSS_ONE) {
for (Pair<Path, Float> p : foregroundPaths) {
mPaint.setStrokeWidth(p.second);
canvas.drawPath(p.first, mPaint);
}
} else if (MainActivity.checkBtnOn == MainActivity.BSS_TWO) {
for (Pair<Path, Float> p : foregroundPaths) {
mPaint.setStrokeWidth(p.second);
canvas.drawPath(p.first, mPaint);
}
} else {
for (Pair<Path, Float> p : foregroundPaths) {
mPaint.setStrokeWidth(p.second);
canvas.drawPath(p.first, mPaint);
}
}
// matrix.postScale(getScale(), getScale());
rect = canvas.getClipBounds();
displayRectF = new RectF(rect.left, rect.top, rect.right, rect.bottom);
// rect =drawable.getBounds();
canvas.restore();
}
我的问题是“什么,我做错了导致我绘制路径的行为不一致。” 表示它在缩放时位置的变化(对于缩放,我使用的是 sephiroth 库)。我附上了两个图片链接。第一个图像适合屏幕和第二个缩放。
请帮助我或任何建议将不胜感激。谢谢