Android: Unterschied zwischen Leinwand.drawBitmap und BitmapDrawable.zeichnen?
Wenn ich zeichnen will ein BitmapDrawable auf eine Leinwand, in Android gibt es zwei Möglichkeiten, das gleiche zu tun, und ich weiß nicht, was man bevorzugt:
-
Mit Leinwand.drawBitmap (), und extrahieren Sie die Bitmap aus dem drawable mit getBitmap()
-
Verwendung von drawable.draw(canvas), vorbei an der Leinwand als argument für die drawable.
Ich bin mit der ersten option jetzt, aber es scheint völlig willkürlich, wie ich kann nicht sehen keinen Unterschied.
Dank für Eure Antworten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nie tun option Nummer 1 die Art und Weise Sie es tun. Anstatt eine bitmap aus einem drawable jedes mal, wenn Sie wollen, um es zu zeichnen, erstellen Sie eine bitmap in den ersten Platz. Das heißt, nicht schaffen, ein Drawable wenn Sie zum zeichnen einer bitmap. Erstellen Sie eine bitmap wie diese:
- Und dies ist etwas, das Sie nicht nur einmal. Danach ziehen Sie einfach wie Sie tun (canvas.drawbitmap()).
Als für option Nummer 2, Ihr macht das richtig.
Nun, es gibt einige Unterschiede.
Option 1 ist schneller zu zeichnen und das in der Regel gut für hintergrund-Bilder. Es ist eine signifikante Veränderung zu FPS, je nachdem, ob Sie zeichnen eine bitmap oder drawable. Bitmaps sind schneller.
Option 2 ist der Weg zu gehen, wenn Sie brauchen, um Dinge wie skalieren, verschieben und andere Arten von Manipulationen am Bild. Nicht so schnell, aber es gibt keine andere option, wenn Sie wollen, zu tun, alle diese Dinge nur erwähnt.
Hoffe, das hilft!