什么时候可以调用getMeasuredWidth()

时间:2014-05-07 11:19:27

标签: android

我有一个自定义类,它继承View并覆盖了onDraw方法。在此方法中,我使用Bitmap作为参数创建getMeasuredWidth()实例。

编译器不喜欢它说在onDraw方法中创建对象并不酷。

所以我需要将Bitmap实例创建移动到另一个方法。但我需要确保getMeasuredWidth()能够返回最新的信息。

我的问题是:我应该使用什么方法来捕获已更改的getMeasuredWidth()并重新创建我的Bitmap对象?

1 个答案:

答案 0 :(得分:1)

getMeasuredWidth()返回测量值,如果您需要布局中视图的实际宽度,请使用getWidth()

如果位图应具有视图的宽度或高度,请在onSizeChanged()

中创建
/**
 * This is called during layout when the size of this view has changed. If
 * you were just added to the view hierarchy, you're called with the old
 * values of 0.
 *
 * @param w Current width of this view.
 * @param h Current height of this view.
 * @param oldw Old width of this view.
 * @param oldh Old height of this view.
 */
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    if (w != 0 && h != 0) {
        //create Bitmap here
    }
}