0

小さなアプリを作りたい。画面に触れて何かを描くと、通過したポイントがリストされ、5 番目のポイントごとに小さな緑色の 3x3 の長方形が描画されます。TextView を使用してポイントをリストするために onTouchEvent を使用し、それを setContentView に送信します。しかし、私は描画に問題があります。描画(onDraw)の例を確認しましたが、印刷ポイントと緑のドットの描画の両方で機能させることができません。どんな助けでも素晴らしいでしょう、ありがとう。

4

2 に答える 2

1

これが、 での描画の簡単なサンプルですSurfaceView

public class FunPanel extends SurfaceView {

    class Point {
        int X;
        int Y;

        public Point() {
            X = Y = -1;
        }

    }

    private ArrayList<Point> mPoints = new ArrayList<Point>();
    private Point mCurPoint = new Point();
    private Bitmap mBitmap = ....// your desired image


    @Override
    public void doDraw(Canvas canvas) {
        if( !(mPoints.size() % 5) ) {
            canvas.drawBitmap(mBitmap, mCurPoint.X, mCurPoint.Y, null);
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        mCurPoint.X = (int) event.getX() - mBitmap.getWidth() / 2;
        mCurPoint.Y = (int) event.getY() - mBitmap.getHeight() / 2;

        mPoints.add(mCurPoint);
        return super.onTouchEvent(event);
    }

}
于 2012-01-13T16:12:47.267 に答える
0

あなたが何をしようとしているのかは完全には明らかではありませんが、これを見てください。正しい方向に進むはずです。基本的に View を拡張し、 をオーバーライドしonDraw(Canvas)て Rectangles を描画し、 をオーバーライドしonTouchEvent(MotionEvent)て画面からタッチ ポイントを取得します。

于 2012-01-13T14:29:09.860 に答える