Android-activity.setContentView完成渲染时是否触发任何事件?
一旦活动准备就绪,我将尝试从Android-activity.setContentView完成渲染时是否触发任何事件?,android,image,events,matrix,onready,Android,Image,Events,Matrix,Onready,一旦活动准备就绪,我将尝试从myImageView.getImageMatrix()方法获取值。 我尝试使用onCreate(),onStart(),onResume()方法,但得到的矩阵是默认值 如果我调用OnClickListener触发的myImageView.getImageMatrix(),在我的活动可见后,我会得到正确的值 更清楚地说: 调用getImageMatrix onStart=Matrix{[1.0,0.0,0.0][0.0,1.0, 0.0][0.0,0.0,1.0]
myImageView.getImageMatrix()
方法获取值。
我尝试使用onCreate()
,onStart()
,onResume()
方法,但得到的矩阵是默认值
如果我调用OnClickListener触发的myImageView.getImageMatrix()
,在我的活动可见后,我会得到正确的值
更清楚地说:
- 调用getImageMatrix onStart=
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]}
您可以在onProgressUpdate中显示一个Progress对话框,然后从onPostExecute继续您的代码 我不是100%,但我需要知道一些与我的开发类似的东西,我发现()在加载视图时被调用。我不确定这是否满足您的需要。您也可以尝试以下方法:
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
// e.g. find the real size of it etc
myImageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
问题在于,直到onResume()完成后,才会对布局进行测量和渲染。检查此问题以了解发生这种情况时如何得到通知:谢谢,一旦数据存在,就会调用onWindowFocusChanged,但是每次焦点更改时都会调用它。我可以添加一个标志来指示init状态,但它看起来并不那么平滑。我认为这是我目前的解决方案,有什么想法吗?不确定,无论如何要使用这个类,应用程序必须指定API级别为“11”或更高。不幸的是,这不是我的情况。为此,onWindowFocusChanged在数据存在时被调用,但是每次焦点更改时都会调用它。我可以添加一个标志来指示init状态,但它看起来并不那么平滑。我想这是我目前的解决方案,有什么想法吗?哦,是的,很抱歉忘了添加那个。我有一个全局布尔值,用来确保它是焦点改变的第一个调用,然后做我需要做的事情。我想这取决于你需要做什么,但是如果你只需要在第一次加载屏幕时访问某个东西,那么如果不是最优雅的代码,那么一个全局变量应该可以修复它。对不起,伙计,我认为这两个答案都很好,我希望我能同时选择它们(我能做到吗?)。但我认为另一个解决方案更为平滑。无论如何,我真的很感激你的回答!不,我不这么认为,我没注意到你有另一个被接受的答案。我认为最好是你接受你实现的一个答案,所以如果另一个答案对你有效,那就是应该接受的答案。我只是担心我的答案有问题,如果我也想知道我自己的代码:)谢谢,听起来有点复杂,因为这似乎是一个琐碎的任务。“视图准备就绪时通知”RemoVegLobalOnlyOutliner()现在已不推荐使用,从SDK版本16(Jelly Bean)开始,应使用removeOnGlobalLayoutListener()。