Tôi có một ứng dụng vẽ nhỏ và muốn sử dụng các hình dạng "phức tạp" làm bàn chải, tức là một ngôi sao. Vẽ với một bàn chải đơn giản đã làm việc với mã này:Làm cách nào để vẽ đường dẫn bằng bitmap?
remotePath.reset();
remotePath.moveTo(start_x, start_y);
float dx = Math.abs(end_x - start_x);
float dy = Math.abs(end_y - start_y);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
remotePath.quadTo(start_x, start_y, (end_x + start_x)/2, (end_y + start_y)/2);
}
remotePath.lineTo(end_x, end_y);
// commit the path to our offscreen
mCanvas.drawPath(remotePath, remotePaint);
// kill this so we don't double draw
remotePath.reset();
invalidate();
tôi về cơ bản muốn cùng chức năng sử dụng bitmap này:
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.brush_star);
Giải pháp của tôi hiện đang sử dụng một danh sách các điểm (tọa độ) để vẽ bitmap. Vấn đề với giải pháp đó là nó chỉ vẽ bitmap tại các điểm đã cho kết quả là có khoảng trống giữa mỗi bitmap được vẽ. Tôi thà muốn có được một đường trơn tru trong khi vẽ như với một bàn chải đơn giản mà không có bất kỳ khoảng trống ở giữa.
mã hiện tại cho các bản vẽ bitmap:
protected void onDraw(Canvas canvas) {
// Make canvas white
canvas.drawColor(Color.WHITE);
// Paintable area
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
for (Point point : points) {
canvas.drawBitmap(complexBrush, point.x, point.y, p);
}
}
cách tốt nhất để làm điều đó là gì? Cảm ơn bạn đã giúp đỡ!
Làm cách nào chúng ta có thể vẽ bằng nhiều bitmap? Giống như chúng ta thay đổi màu và vẽ nhiều đường dẫn –