我想做一个小应用程序。您将触摸屏幕并绘制一些东西,它会列出您通过的点,并为每第五个点绘制绿色的 3x3 小矩形。我使用 onTouchEvent 列出使用 TextView 的点并将其发送到 setContentView。但是,我在绘图时遇到了问题。我检查了绘图示例(onDraw),但我无法让它同时适用于打印点和绘制绿点。任何帮助都会很棒,谢谢。
问问题
2658 次
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 回答