Android ImageView的onDraw逻辑

Android ImageView的onDraw逻辑,android,Android,MyImageView扩展ImageView类在方法onDraw()中有以下代码: @Override protected void onDraw(Canvas canvas) { this.setImageBitmap(someBitmap); super.onDraw(canvas); } 虽然代码可以工作,但我想知道为什么onDraw没有无限调用,因为setImageBitmap是否会调用onDraw-->正确?我仍然想知道上述代码是否存在性能问题?setImageBit

MyImageView扩展ImageView类在方法onDraw()中有以下代码:

@Override
protected void onDraw(Canvas canvas) {
    this.setImageBitmap(someBitmap);
    super.onDraw(canvas);
}

虽然代码可以工作,但我想知道为什么onDraw没有无限调用,因为setImageBitmap是否会调用onDraw-->正确?我仍然想知道上述代码是否存在性能问题?

setImageBitmap()将调用invalidate(),后者随后将调用onDraw()。你所做的是一个非常糟糕的主意:)

是的,这是一个糟糕的主意。实际上,尽管UI显示正确。我可以看到onDraw()方法被日志信息无限调用。