-2

シンプルなペイントアプリを作っていますが、キャンバスを使うのは初めてです。レイアウトxmlにSurfaceViewが既にあり、IDは正しいです。とにかく、ここに私のコードがあります:

package com.example.paint;

import android.app.Activity;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Paint extends Activity {
/** Called when the activity is first created. */

SurfaceView v;
SurfaceHolder holder;
Canvas c;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    v = (SurfaceView) findViewById(R.id.svDraw);
    holder = v.getHolder();

    while (true) {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        if (!holder.getSurface().isValid())
            continue;

        c = holder.lockCanvas();
        c.drawARGB(255, 0, 255, 0);
        holder.unlockCanvasAndPost(c);
    }
}
}

ありがとう。

4

1 に答える 1

2

を削除する必要がありますwhile(true)。これは、何も起こらないようにする無限ループです。

描画コードは、キャンバス オブジェクトを含むonDrawメソッドに属しますView

于 2012-04-27T23:16:54.467 に答える