【发布时间】:2016-02-12 18:15:25
【问题描述】:
我试图在应用程序初始化期间使用视图的onSizeChanged() 获取视图的宽度和高度,但它总是返回 0。我在这里阅读了很多问题,但没有一个有效,我总是得到 0。
在我的应用程序中,我有一个画布,我需要将其大小传递给另一个使用它进行计算的对象。在画布中,我有变量 width 和 height 来存储大小,并且在 MyActivity 初始化期间它们被传递给该计算。问题是,它总是返回 0,即使我尝试使用 getWidth() 和 getHeight()。
我也尝试在 onResume() 中检索大小,但似乎我的画布的 onSizeChanged() 仍未被调用。
来自 MainActivity 的代码段
@Override
protected void onResume() {
super.onResume();
hB = canvas.getW();
vB = canvas.getH();
ap = new ActualPosition();
generator = new PositionGenerator(ap);
table = new DrawTable(ap, hB, vB);
generator.runMe();
}
来自画布的代码
@Override
protected void onSizeChanged(int w, int h, int oldW, int oldH) {
super.onSizeChanged(w, h, oldW, oldH);
this.w = w;
this.h = h;
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
}
public int getW() {
return w;
}
public int getH() {
return h;
}
所以我想知道在 Activity 生命周期中何时调用 onSizeChanged() 方法。
【问题讨论】:
标签: android android-canvas android-lifecycle