Android如何等待坐标计算完成?

问题描述 投票:-1回答:1

我有一个Android应用程序在onCreate方法中以编程方式创建所有布局,之后我需要对我创建的一些视图的坐标进行一些计算,但是当我尝试在屏幕上获取坐标时,它总是返回0, 0。我认为这可能是因为活动仍然没有实际通过调试呈现的事实我仍然看到灰色屏幕如果我在我获得坐标的点上放置一个断点,我怎样才能在开始活动后计算坐标?对我来说,即使它不在onCreate上也没关系,我只需要在活动渲染之后执行它,如果可能的话我想不要使用OnGlobalLayoutListener(如果没有别的办法......我只会习惯了这个想法,但我想知道是否还有其他方法)。啊,我甚至试图将它放在onResume上,但它不起作用,可能是在调用onResume时渲染仍未完成。

android android-activity measurement measure
1个回答
1
投票

扩展View类并编写自己的protected void onSizeChanged(int w, int h, int oldw, int oldh) {可以帮助您。

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);

    final float yCenterX = w / 2;
    final float yCenterY = h / 2;
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.