【问题标题】:Android how to wait for coordinates calculation completed?Android如何等待坐标计算完成?
【发布时间】:2015-10-05 15:51:42
【问题描述】:

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

【问题讨论】:

  • 您可能会尝试在布局组件膨胀之前访问它们。除非您发布一些代码,否则我们无法真正知道。至少向我们展示 onCreate 的东西。

标签: android android-activity measurement measure


【解决方案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;
    ...
}

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多