我想制作一个小应用。您将触摸屏幕并绘制一些内容,它将列出您通过的点并为每个第五点绘制小的绿色3x3矩形。我使用onTouchEvent来使用TextView列出点并将其发送到setContentView。但是,我在绘图方面有问题。我检查了绘图的例子(onDraw),但我无法让它适用于打印点和绘制绿点。任何帮助都会很棒,谢谢。
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
目前还不完全清楚你要做什么,但看看this它应该让你开始朝着正确的方向前进。基本上扩展视图并覆盖onDraw(Canvas)
以绘制矩形并覆盖onTouchEvent(MotionEvent)
以从屏幕抓取触摸点。