所以我的目标是水平翻转图像,然后将其绘制在 Canvas 上。目前我正在使用 canvas.scale(-1,1) ,它可以有效地工作并水平绘制图像,但是它也会与 x 轴值发生关系,在比例之前,x 位置将是 150,之后我必须切换它到 -150 以在同一位置呈现。
我的问题是,我怎样才能使 x 值在两种情况下都为 150,而不必在缩放后调整 x 位置?有没有一种更有效的方法可以在不影响性能的情况下做到这一点?
最佳答案
我知道这个问题很老了,但我碰巧遇到了同样的问题。在我的情况下,在扩展 ImageButton 的类上绘图时,我不得不翻转 Canvas 。幸运的是,这个特定案例的解决方案比我想象的更优雅。只需重写 onDraw(Canvas)
方法,如下所示:
@Override
protected void onDraw(final Canvas canvas) {
// Scale the canvas, offset by its center.
canvas.scale(-1f, 1f,
super.getWidth() * 0.5f, super.getHeight() * 0.5f);
// Draw the button!
super.onDraw(canvas);
}
关于安卓 canvas.scale(-1,1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3902772/