0

我想ImageView从我的应用程序开始就找到一个的大小。

对于我的应用程序,我想做与谷歌地图相同的事情,即显示图像,并在该图像上放置指向地点的指针。X%通过包含图像并与图像相关的 XML 文件来恢复指针Y%

要将指针放在我的图像上,我会这样做:

public void onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);

    // more code...

    float maxX = imageViewCarte.getWidth();
    maxY imageViewCarte.getHeight float = ();
}

问题是这些值是null在应用程序的开头。所以,我试着做同样的事情onStart()onResume()但无济于事,我总是得到0!但是,如果我在类似的事件中做同样的事情onClick(),它会正确返回一个真实值。

有什么方法可以在应用程序启动时获得这个大小?

4

1 回答 1

1

您应该将此方法添加到您的活动中,

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     super.onWindowFocusChanged(hasFocus);
     Log.i("Height",imageViewCarte.getWidth ()+""); 
} 

在 onCreate 期间,您的视图已膨胀但尚未绘制。所以这里的这个方法在绘图过程之后被调用,因此你将能够通过覆盖这个方法来实现你的目标..

于 2012-05-10T11:09:56.610 回答