私はこれがばかげた質問であることを知っていますが、私はチュートリアルを行っていましたが、以下のコード行を理解していないようです. !! これは非常に単純ですが、私はそれを理解していないようです。助けてください....私は初心者です...
private void drawPict(Canvas canvas, int x, int y, int w, int h,
float sx, float sy) {
canvas.save();
canvas.translate(x, y);
canvas.clipRect(0, 0, w, h);
canvas.scale(0.5f, 0.5f);
canvas.scale(sx, sy, w, h);
canvas.drawPicture(mPicture);
canvas.restore();
}
@SuppressWarnings("unused")
@Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(mPicture.beginRecording(getWidth(), getHeight()));
mPicture.endRecording();
int x = getWidth()/2;
int y = getHeight()/2;
if (false) {
canvas.drawPicture(mPicture);
} else {
drawPict(canvas, 0, 0, x, y, 1, 1);
drawPict(canvas, x, 0, x, y, -1, 1);
drawPict(canvas, 0, y, x, y, 1, -1);
drawPict(canvas, x, y, x, y, -1, -1);
}
}
私はこれをもう一度調べました...そして、canvas.scaleには4つのパラメーターがあり、私が想定するポイントの座標であることを理解しています...しかし、フロートsx、フロートsyをまだ理解できません...
sx=-1 および sy=1... スケーリングします、合意しました...しかし、より良い方法はありませんか?