/ / Organizzazione di drawable disegnati su tela - java, android

Disposizione di drawable disegnati su tela - java, android

c'è un modo per organizzare drawen drawable su tela, prima di ridisegnarlo? Intendo impostare quale drawable sarà disegnato nella parte anteriore, e quale drawable sarà disegnato nella parte posteriore.

risposte:

4 per risposta № 1

Sono disegnati nell'ordine in cui li disegna, prova a disegnare quello che si trova nella parte posteriore prima, quello anteriore l'ultimo.


0 per risposta № 2

È possibile disegnare su una tela temporanea per disegnare successivamente nella tela principale.

Picture iconFrame = new Picture();
Canvas tempCanvas = iconFrame.beginRecording(width, height);
// width and height refer to the intended destination canvas size

...
// Any configuration before performing the draw should be done here

tempCanvas.drawPath(...);
tempCanvas.drawBitmap(...);
// Any required draw commands for this image should be done to tempCanvas

iconFrame.endRecording();

...
// Any other configuration or draw commands can be done here

iconFrame.draw(canvas);
// Assigns the content of tempCanvas to the top of the main Canvas

Nel mio caso, la manipolazione di PorterDuff della mia immagine all'interno di un percorso personalizzato ha funzionato solo se è stata eseguita per prima, poiché in seguito la disegna.


0 per risposta № 3

Un modo per farlo è avere tutto ciò che si disegna definendo una variabile z-index e raccogliere tutto ciò che si disegna in un singolo punto e inserirli in un elenco che poi si ordina dallo z-index prima di disegnarlo.

ex:

Interface IDrawable{
int getZ();
void draw();
}

class drawMe implements IDrawable{
@overrider
draw(){
/// do my drawing
}

@override
int getZ() {return z; }
}

nel tuo disegno o nella tua classe principale

List<IDrawable> myList= new ArrayList();
myList.Add(new DrawMe());

e nel tuo metodo di disegno

for(IDrawable draw : myList.OrderBy(z){
draw.draw();
}

questo è comunque il concetto