0

我想做一个小应用程序。您将触摸屏幕并绘制一些东西,它会列出您通过的点,并为每第五个点绘制绿色的 3x3 小矩形。我使用 onTouchEvent 列出使用 TextView 的点并将其发送到 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

目前尚不完全清楚您要做什么,但看看这个它应该可以让您朝着正确的方向开始。基本上扩展一个视图并覆盖onDraw(Canvas)以绘制矩形并覆盖onTouchEvent(MotionEvent)以从屏幕上获取触摸点。

于 2012-01-13T14:29:09.860 回答