0

onNewIntend(Intent intent) メソッドで描画する線の位置を計算したいだけです。いくつかの緯度/経度を指定すると、それらをカスタム ビューに合わせる必要があります。この計算のために - これが私の問題です - onNewIntend(...) が onCreate(...) の前に呼び出されるため、0 である myView.getHeight()/getWidth() メソッドが必要です。:/

この問題に対処するアイデアはありますか?

私はすでに試しました...

@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 に答える