View.LAYER_TYPE_HARDWARE
bedeutet, dass die Ansicht durch eine Hardwareschicht, z. eine Textur, FBO ... Somit ist es einfach/fast frei, Farbeffekte, Transluzenz und andere GPU-Effekte anzuwenden, ohne die Ansicht neu zeichnen zu müssen. Es empfiehlt sich, die Hardwareebene zu aktivieren, wenn die Ansicht solche Effekte aufweist oder bevor sie animiert wird. Hardwareschichten benötigen jedoch viel RAM, seien Sie also vorsichtig.
Dokumentation hier: LAYER_TYPE_HARDWARE und ein Zitat von ihm:
Zeigt an, dass die Ansicht eine Hardwareschicht hat. Eine Hardwareschicht wird durch eine hardwarespezifische Textur (in der Regel Rahmenpufferobjekte oder FBO auf OpenGL-Hardware) unterstützt und bewirkt, dass die Ansicht mit der Hardware-Rendering-Pipeline von Android gerendert wird, jedoch nur, wenn die Hardwarebeschleunigung für die Ansichtshierarchie aktiviert ist. Wenn Hardwarebeschleunigung deaktiviert ist, verhalten sich Hardwareschichten genau wie Softwareschichten.
Eine Hardwareschicht ist nützlich, um einer Ansicht und allen untergeordneten Elementen einen bestimmten Farbfilter und/oder Füllmodus und/oder Transluzenz zuzuweisen.
Eine Hardwareschicht kann verwendet werden, um einen komplexen Ansichtsbaum in eine Textur zu cachen und die Komplexität von Zeichenoperationen zu reduzieren. Wenn Sie beispielsweise einen komplexen Ansichtsbaum mit einer Übersetzung animieren, kann eine Hardwareschicht verwendet werden, um den Ansichtsbaum nur einmal zu rendern.
Eine Hardwareschicht kann auch verwendet werden, um die Renderqualität zu verbessern, wenn Drehtransformationen auf eine Ansicht angewendet werden. Es kann auch verwendet werden, um mögliche Clipping-Probleme beim Anwenden von 3D-Transformationen in einer Ansicht zu vermeiden.
EDIT: Um Ihre Frage zu beantworten, ist die Schicht standardmäßig NONE, so dass es RAM nicht nimmt. HW-beschleunigtes Zeichnen und eine Hardware-Schicht sind zwei verschiedene Dinge. HW-beschleunigtes Zeichnen bedeutet, dass die Zeichenbefehle, z. beim Zeichnen in eine Canvas
, werden von einer GPU statt CPU durchgeführt. HW-Layer bedeutet, dass das Ergebnis der Zeichnung im Speicher der GPU gespeichert wird, sodass das Ergebnis (z. B. eine Textur) später angezeigt werden kann, anstatt die Ansicht erneut zu zeichnen.
EDIT 2: Die erste bearbeiten mein eigenes ist, aber ich war aus SO unterzeichnet während der Bearbeitung: D