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