Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die TextureView Klasse ist eine Ansicht, die hardwarebeschleunigtes 2D-Rendering verwendet, um die Anzeige eines Video- oder OpenGL-Inhaltsstreams zu ermöglichen. Der folgende Screenshot zeigt z. B. die TextureView Anzeige eines Livefeeds von der Kamera des Geräts:
SurfaceView Im Gegensatz zur Klasse, die auch zum Anzeigen von OpenGL- oder Videoinhalten verwendet werden kann, wird die TextureView nicht in einem separaten Fenster gerendert.
Daher ist es in der Lage, TextureView Ansichtstransformationen wie jede andere Ansicht zu unterstützen. Beispielsweise kann das Drehen eines Objekts TextureView durch einfaches Festlegen seiner Rotation Eigenschaft, seiner Transparenz durch Festlegen seiner Alpha Eigenschaft usw. erreicht werden.
Daher können wir mit der TextureView jetzt dinge wie das Anzeigen eines Livestreams von der Kamera ausführen und transformieren, wie im folgenden Code gezeigt:
public class TextureViewActivity : Activity,
TextureView.ISurfaceTextureListener
{
Camera _camera;
TextureView _textureView;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
_textureView = new TextureView (this);
_textureView.SurfaceTextureListener = this;
SetContentView (_textureView);
}
public void OnSurfaceTextureAvailable (
Android.Graphics.SurfaceTexture surface,
int width, int height)
{
_camera = Camera.Open ();
var previewSize = _camera.GetParameters ().PreviewSize;
_textureView.LayoutParameters =
new FrameLayout.LayoutParams (previewSize.Width,
previewSize.Height, (int)GravityFlags.Center);
try {
_camera.SetPreviewTexture (surface);
_camera.StartPreview ();
} catch (Java.IO.IOException ex) {
Console.WriteLine (ex.Message);
}
// this is the sort of thing TextureView enables
_textureView.Rotation = 45.0f;
_textureView.Alpha = 0.5f;
}
…
}
Der obige Code erstellt eine TextureView Instanz in der Aktivitätsmethode OnCreate und legt die Aktivität als " TextureViews SurfaceTextureListener" fest. Um dies SurfaceTextureListenerzu sein, implementiert die Aktivität die TextureView.ISurfaceTextureListener Schnittstelle. Das System ruft die OnSurfaceTextAvailable Methode auf, wenn die SurfaceTexture Anwendung bereit ist. In dieser Methode nehmen wir das SurfaceTexture übergebene Und legen sie auf die Vorschautextur der Kamera fest. Anschließend können wir normale ansichtsbasierte Vorgänge ausführen, z. B. festlegen, wie RotationAlphaim obigen Beispiel. Die resultierende Anwendung, die auf einem Gerät ausgeführt wird, wird unten angezeigt:
Um die TextureViewHardwarebeschleunigung zu verwenden, muss diese standardmäßig als API-Ebene 14 aktiviert sein. Da in diesem Beispiel die Kamera verwendet wird, müssen sowohl die android.permission.CAMERA Berechtigung als auch das android.hardware.camera Feature im AndroidManifest.xml festgelegt werden.

