Android – 当activity.setContentView完成渲染时是否触发了任何事件?

一旦我的活动准备就绪,我试图从myImageView.getImageMatrix()方法中获取值。 我尝试使用onCreate()onStart()onResume()方法,但我得到的matrix是默认的。

如果我调用由OnClickListener触发的myImageView.getImageMatrix() ,当我的活动可见后,我得到正确的值。


只是要更清楚:

  • 调用getImageMatrix onStart = Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]} 1.0,0.0,0.0 Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}

  • 调用getImageMatrix onClick = Matrix{[0.77488154, 0.0, 7.6717987][0.0, 0.77488154, 0.0][0.0, 0.0, 1.0]}

Solutions Collecting From Web of "Android – 当activity.setContentView完成渲染时是否触发了任何事件?"

你也可以试试这个方法:

 ImageView myImageView = (ImageView) findViewById(R.id.myImageView); ViewTreeObserver vto = myImageView.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // do something now when the object is loaded // eg find the real size of it etc myImageView.getViewTreeObserver().removeGlobalOnLayoutListener(this); } }); 

我不是100%,但我需要知道我的发展相似的东西,我发现onWindowFocusChanged ()被称为视图加载时。 我不确定这是否满足您的需求。

也许你可以使用onLayoutChangeListener,但我不确定。

也许你可以使用AsyncTask(http://developer.android.com/reference/android/os/AsyncTask.html)来监视ImageView是否已经加载(也许不等于null)。

你可以在onProgressUpdate中显示一个progess对话框,然后从onPostExecute继续你的代码。