Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Класс TextureView — это представление, использующее отрисовку с аппаратным ускорением 2D для отображения видео или потока содержимого OpenGL. Например, на следующем снимке экрана показан TextureView динамический веб-канал с камеры устройства:
В отличие от класса, который также можно использовать для отображения содержимого SurfaceView OpenGL или видео, ТекстураView не отображается в отдельном окне.
Таким образом, TextureView можно поддерживать преобразования представлений, как и любое другое представление. Например, поворот можно выполнить, просто задав TextureView его Rotation свойство, прозрачность, задав его Alpha свойство и т. д.
Таким образом, теперь TextureView мы можем выполнять такие действия, как отображение потоковой трансляции с камеры и его преобразование, как показано в следующем коде:
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;
}
…
}
Приведенный TextureView выше код создает экземпляр в методе действия OnCreate и задает действие как TextureView"s SurfaceTextureListener". Для этого SurfaceTextureListenerдействие реализует TextureView.ISurfaceTextureListener интерфейс. Система вызовет OnSurfaceTextAvailable метод, когда SurfaceTexture он готов к использованию. В этом методе мы принимаем переданные SurfaceTexture и устанавливаем его на текстуру предварительного просмотра камеры. Затем мы можем выполнять обычные операции на основе представления, такие как установка Rotation и Alpha, как в приведенном выше примере. Результирующее приложение, работающее на устройстве, показано ниже:
Чтобы использовать аппаратное TextureViewускорение, необходимо включить аппаратное ускорение, которое по умолчанию будет использоваться на уровне API 14. Кроме того, так как в этом примере используется камера, android.permission.CAMERA необходимо задать разрешение и android.hardware.camera функцию в AndroidManifest.xml.

