0

我只想计算一些线位置以在 onNewIntend(Intent intent) 方法中绘制。给定一些纬度/经度,我必须将它们放入自定义视图中。对于这个计算 - 这是我的问题 - 我需要为 0 的 myView.getHeight()/getWidth() 方法,因为在 onCreate(...) 之前调用了 onNewIntend(...)。:/

你有什么想法来解决这个问题吗?

我已经试过了...

@Override
public void onNewIntent(Intent intent) {
    final String action = intent.getAction();

    if (Intent.ACTION_RUN.equals(action)) {         

        // @Todo: Here should be checked if view is already inflated ...
        setContentView(R.layout.collector);
        int x = mGraphView.getMeasuredHeight(); 
        ...

...这也产生x = 0

非常感谢!

4

1 回答 1

0

每当视图父级要求它测量自身时,在您的自定义视图中覆盖 onMeasure 以获取宽度和高度。您可以添加布局侦听器

http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
   int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
   int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
   this.setMeasuredDimension(parentWidth/2, parentHeight);
   this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
   super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}

于 2012-06-10T14:13:38.197 回答