J'ai une petite application de dessin et je veux utiliser des formes "complexes" comme des brosses, c'est-à-dire une étoile. Dessin avec une brosse simple fonctionne déjà avec ce code:Comment dessiner un chemin avec un 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();
Je veux essentiellement les mêmes fonctionnalités en utilisant ce bitmap:
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.brush_star);
Ma solution actuellement à l'aide d'une liste de points (coordonnées) pour dessiner le bitmap. Le problème avec cette solution est qu'elle dessine seulement des bitmaps aux points donnés ayant pour résultat des intervalles entre chaque bitmap dessiné. Je préférerais obtenir une ligne lisse tout en dessinant comme avec un pinceau simple sans aucun intervalle entre les deux.
code actuel pour le dessin 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);
}
}
Quelle est la meilleure façon de le faire? Merci pour toute aide!
Comment pouvons-nous dessiner avec plusieurs bitmaps? Tout comme nous changeons de couleur et dessinons plusieurs chemins –