0

のサブクラスであるClasscalledがあります。このビューにデータを渡して、メソッドでそれに応じて描画できるようにしたいと思います。LineGraphViewViewonDraw()

分析フラグメント(ビューが参照され、メソッドが呼び出される場所)

LineGraphView altitudeGraph;
LineGraphView speedGraph;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved)
{
    super.onCreateView(inflater, group, saved);

    View view = inflater.inflate(R.layout.analysisfrag, group, false);
    this.altitudeGraph = (LineGraphView) view.findViewById(R.id.linegraph_Altitude);
    this.speedGraph = (LineGraphView) view.findViewById(R.id.linegraph_Speed);

    return view;
}

getWidth()私の質問は、とを使用してそのビューの幅と高さの属性にアクセスできるようにしたい場合、getHeight()これまでに返されるものはすべてであるため、いつアクセスできるかということです0

LineGraphView's親にアクセスの準備ができていることを知らせるリスナーを作成する必要がありますか?

前もって感謝します。

4

2 に答える 2

1

すでに独自のカスタムビューを作成している場合は、渡す必要のある情報のゲッター/セッターを使用してプライベート変数を追加するだけです。そこから、onDraw()メソッドで描画を処理するだけです。そこから、ビューの幅と高さ(または、同じ値である可能性のあるCanvasの幅と高さ)を取得できます。

于 2012-07-03T14:42:38.607 に答える
0

答えはここにあります:https ://stackoverflow.com/a/3594216/969325 基本的に、getWidth / heightを呼び出すのが早すぎます(onCreate中)。onCreateの後でハンドラーを使用して取得できると思います。https://stackoverflow.com/a/10118459/969325(onWindowFocusChangedを使用)でこれを試すこともできます。

于 2012-07-03T14:40:26.050 に答える