我用onDraw()
覆盖了一个自定义 View ,该 View 在 Canvas 上绘制了一个位图。当我指定我希望它在布局文件中wrap_content时,它仍然会填满整个屏幕。 onMeasure()
说:
好的,很酷,所以我知道我需要重写onMeasure()
并使用MeasureSpec
。根据this answer
现在我要解决我的问题,如何在onMeasure()
上测量尚未创建的位图并对其进行测量/包装?我知道其他Android View 必须做些什么,因为如果设置为wrap_content,它们不会阻塞整个屏幕。提前致谢!
最佳答案
如果无法在onMeasure调用之前测量位图,则可以返回大小为零,直到加载位图为止。加载后,使父级ViewGroup无效以强制执行另一个度量(不记得View上的invalidate()是否将强制onMeasure)。
关于android - onMeasure(): wrap_content,我怎么知道要包装的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13273838/