Gewusst wie: zeichnen Sie einen Pfad mit einer bitmap?

Habe ich eine kleine Zeichnung app, die Sie nutzen und "komplexe" Formen, wie Bürsten, also ein Stern.
Zeichnung mit einer einfachen Bürste schon funktioniert mit diesem code:

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();

Ich wollen im Grunde die gleiche Funktionalität mit Hilfe dieser bitmap:

Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.brush_star);

Meine Lösung derzeit ist, mit einer Liste von Punkten (Koordinaten) zeichnen Sie die bitmap. Das problem bei dieser Lösung ist, dass es nur zieht bitmaps auf die Punkte gegeben, und das Ergebnis Lücken zwischen den einzelnen bitmap gezeichnet. Eher würde ich mag, um eine glatte Linie beim zeichnen wie mit einem einfachen Pinsel ohne irgendwelche Lücken dazwischen.

Aktuellen code für die bitmap-Zeichnung:

        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);
        }
    }

Was ist der beste Weg, dies zu tun?
Vielen Dank für jede Hilfe!!!

InformationsquelleAutor e-nature | 2011-08-10
Schreibe einen Kommentar