0

我在旋转屏幕以加载之前的状态时使用此方法:

public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
    view1 = new DrawView(this);
    setContentView(view1);
    Bundle bundle = this.getIntent().getExtras();
    onRestoreInstanceState(bundle);
    getCoordinates();//NO WORKS WELL
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
    //Here I set the values ​​to images: colors, borders, etc ...
}

我在 AndroidManifest 中有下一行:

android:configChanges="orientation|screenSize"

在 getCoordinates() 方法中,我有以下代码:

public void getCoordinates(){
    final int[] values = new int[2];
    image.getLocationInWindow(values);
    x = values[0];
    y = values[1];
    width = image.getWidth();
    height = image.getHeight();
}

前面的代码并不完全是我所拥有的,但它作为一个例子。我的真实代码没有太大变化。但是我有一个问题,我必须知道图像的坐标才能在图像之间画线。但是,如果我通过示例启动该方法 (onConfigurationChanged(Configuration newConfig) ),因为该方法尚未执行所有行且该方法尚未结束,则 UI 未完全加载。因此在坐标中获取空值。一旦用户界面充满电以获取坐标,我不知道如何自动启动方法 getCoordinates()。任何人都可以帮助我吗?

谢谢!!!!

4

1 回答 1

0

添加布局侦听器。

请参阅:如何判断布局何时绘制?

于 2013-04-17T14:48:44.043 回答