Android 重写imageView的onDraw方法不可绘制

Android 重写imageView的onDraw方法不可绘制,android,android-imageview,android-ui,android-custom-view,ondraw,Android,Android Imageview,Android Ui,Android Custom View,Ondraw,我按照本教程制作了可以向各个方向滚动的make和imageview。问题是,当我重写onDraw方法并尝试手动将可绘制内容向右绘制到画布时,可绘制内容偏离中心 @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save(); canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); getDrawable

我按照本教程制作了可以向各个方向滚动的make和imageview。问题是,当我重写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()获取的矩阵


注:根据普金斯的评论,由于这似乎解决了布赖恩的问题,我将此作为一个单独的答案,以便将来的读者可以看到。

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