當我用手指在Android的觸摸屏上繪製時,如何獲得平滑曲線而不是圓點或圓圈?我使用下面的代碼 -Android的油漆/畫布問題;繪製平滑曲線
public class DrawView extends View implements OnTouchListener {
private static final String TAG = "DrawView";
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
}
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
// Log.d(TAG, "Painting: "+point);
}
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
}
class Point {
float x, y;
@Override
public String toString() {
return x + ", " + y;
}
}
感謝史蒂夫。 但不是使用canvas.drawCircle(point.x,point.y,5,paint);我只想繪製一條連續曲線,因爲我得到的是小圓圈。我不知道如何做插值,所以如果有一種方法/方法在Android中簡單地繪製/繪製曲線,那麼我想使用它。 – Wrapper 2010-04-14 17:45:45
在Finger畫面中,您可以使用Bezier曲線連接由觸摸界面檢測到的相鄰點。 – Samuh 2010-04-15 03:18:54