3 using Tizen.NUI.BaseComponents;
4 using Tizen.NUI.Components;
6 namespace Tizen.NUI.Samples
8 using tlog = Tizen.Log;
10 public class CameraViewTest : IExample
14 CameraView overlayCameraView;
15 CameraView imageCameraView;
19 Button rotationButton;
21 Tizen.Multimedia.Camera overlayCamera;
22 Tizen.Multimedia.Camera imageCamera;
24 const string tag = "NUI";
26 public void Activate()
28 win = NUIApplication.GetDefaultWindow();
29 win.BackgroundColor = new Color(1, 1, 1, 0);
30 win.KeyEvent += Win_KeyEvent;
32 overlayButton = new Button();
33 overlayButton.Text = "Overlay";
34 overlayButton.Size = new Size(100, 100);
35 overlayButton.Position = new Position( 50, 750);
36 overlayButton.Clicked += OverlayButtonClicked;
37 win.Add(overlayButton);
39 nativeButton = new Button();
40 nativeButton.Text = "Image";
41 nativeButton.Size = new Size(100, 100);
42 nativeButton.Position = new Position( 160, 750);
43 nativeButton.Clicked += NativeButtonClicked;
44 win.Add(nativeButton);
46 sizeButton = new Button();
47 sizeButton.Text = "Size";
48 sizeButton.Size = new Size(100, 100);
49 sizeButton.Position = new Position(50, 850);
50 sizeButton.Clicked += sizeButtonClicked;
54 rotationButton = new Button();
55 rotationButton.Text = "Rotation";
56 rotationButton.Size = new Size(100, 100);
57 rotationButton.Position = new Position(160, 850);
58 rotationButton.Clicked += rotationButtonClicked;
59 win.Add(rotationButton);
66 private int rotationCnt = 0;
67 private void rotationButtonClicked(object sender, ClickedEventArgs e)
69 int rotation = rotationCnt % 4;
72 if(overlayCamera != null) {
76 overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate0;
77 overlayCameraView.Update();
80 overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate90;
81 overlayCameraView.Update();
84 overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate180;
85 overlayCameraView.Update();
88 overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate270;
89 overlayCameraView.Update();
92 overlayCamera.DisplaySettings.Rotation = Tizen.Multimedia.Rotation.Rotate0;
93 overlayCameraView.Update();
100 private void OverlayButtonClicked(object sender, ClickedEventArgs e)
102 if(imageCamera != null)
104 imageCamera.StopPreview();
105 imageCamera.Dispose();
107 win.Remove(imageCameraView);
109 if(overlayCamera == null)
115 private void NativeButtonClicked(object sender, ClickedEventArgs e)
117 if(overlayCamera != null)
119 overlayCamera.StopPreview();
120 overlayCamera.Dispose();
121 overlayCamera = null;
122 win.Remove(overlayCameraView);
124 if(imageCamera == null)
130 private void OverlayCamera()
133 overlayCamera = new Tizen.Multimedia.Camera(Tizen.Multimedia.CameraDevice.Front);
134 // default display type is Window (Overlay mode)
135 overlayCameraView = new CameraView(overlayCamera.Handle);
136 overlayCameraView.PositionUsesPivotPoint = true;
137 overlayCameraView.ParentOrigin = ParentOrigin.TopLeft;
138 overlayCameraView.PivotPoint = PivotPoint.TopLeft;
139 overlayCameraView.Size = new Size(300, 400);
140 overlayCameraView.Position = new Position(100, 200);
142 overlayCamera.StartPreview();
144 win.Add(overlayCameraView);
147 private void ImageCamera()
150 imageCamera = new Tizen.Multimedia.Camera(Tizen.Multimedia.CameraDevice.Front);
151 // default display type is Window (Overlay mode)
152 imageCameraView = new CameraView(imageCamera.Handle, CameraView.DisplayType.Image);
153 imageCameraView.PositionUsesPivotPoint = true;
154 imageCameraView.ParentOrigin = ParentOrigin.TopLeft;
155 imageCameraView.PivotPoint = PivotPoint.TopLeft;
156 imageCameraView.Position = new Position(0, 400);
157 imageCameraView.Size = new Size(300, 300);
159 imageCamera.StartPreview();
161 win.Add(imageCameraView);
164 private int size = 300;
165 private void sizeButtonClicked(object sender, ClickedEventArgs e)
167 if(overlayCameraView != null)
168 overlayCameraView.Size = new Size(size, size);
169 if(imageCameraView != null)
170 imageCameraView.Size = new Size(size, size);
175 public void Deactivate()
177 win.KeyEvent -= Win_KeyEvent;
179 if(imageCamera != null)
182 imageCamera.StopPreview();
183 imageCamera.Dispose();
186 win.Remove(imageCameraView);
187 imageCameraView.Dispose();
190 if(overlayCamera != null)
192 overlayCamera.StopPreview();
193 overlayCamera.Dispose();
194 overlayCamera = null;
195 win.Remove(overlayCameraView);
196 overlayCameraView.Dispose();
200 tlog.Fatal(tag, $"Deactivate()! cameraView disposed");
204 private void Win_KeyEvent(object sender, Window.KeyEventArgs e)
206 if (e.Key.State == Key.StateType.Down)
208 tlog.Fatal(tag, $"key pressed name={e.Key.KeyPressedName}");
209 if (e.Key.KeyPressedName == "XF86Back")