0

私のプロジェクトには実際にはかなりの数のコード行が含まれているので、重要なものだけをここに含めることで、あなたを救うことができます. 問題を明確にするのに十分な情報であることを願っています。

「GraphView」クラスとメイン アクティビティのコードの 2 つのメイン クラスがあります。GraphView 内で、基本的にキャンバス上に四角形を描画する関数を作成しました。これはドローピクセルと呼ばれます。GraphView の onDraw メソッドで、drawPixel を何度も呼び出し、画面に四角形を描画します。ここで、メイン コードで、レイアウトとボタンをプログラムで作成しました。私が欲しいのは、GraphView の onDraw メソッドで drawPixel を呼び出す代わりに、ボタンをクリックしたときにそれらの四角形を描画したいということです。私はこれをやってみました:

someButton.setOnClickListener(new View.OnClickListener() { 
    @Override
    public void onClick(View v) {
        Canvas canvas = new Canvas(); 
        // TODO Auto-generated method stub
            for (int i=1; i<50; i++) {
                someGraphView.drawPixel(canvas, i, i); 
            }
        }
});

うまくいきませんでした。onDraw() を介して呼び出すと、長方形は正しく描画されますが、setOnClickListener メソッド内から呼び出すと、まったく描画されません。私が間違っていることを誰かが知っていますか?

4

1 に答える 1

1

それが書かれたら、あなたのViewでinvalidate()を呼び出します。

于 2012-07-16T23:43:58.553 に答える