【问题标题】:Overriding onDraw method of imageView un-centers drawable覆盖 imageView 的 onDraw 方法使可绘制对象不居中
【发布时间】:2014-06-17 09:56:22
【问题描述】:

我正在按照本教程http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html 制作可以向各个方向滚动的图像视图。问题是当我覆盖 onDraw 方法并尝试手动将可绘制对象绘制到画布时,可绘制对象偏离中心。

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.save();
    canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
    getDrawable().draw(canvas);
    canvas.restore();

}

如果我注释掉该方法,则图像将正确显示在中间。

重写此方法对对齐有影响吗?

【问题讨论】:

  • 在 canvas.save() 调用 canvas.concat 后,使用 getImageMatrix() 获取的矩阵
  • 如果您发布答案,我可以将其标记为正确。

标签: android android-imageview android-ui android-custom-view ondraw


【解决方案1】:

canvas.save() 之后调用canvas.concat 并使用getImageMatrix() 获取的矩阵

P.S:取自 pskink 的评论,因为这似乎解决了 Brian 的问题,所以我将其设置为单独的答案,以便未来的读者可以看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多