5
5
import android .graphics .Color ;
6
6
import android .os .Bundle ;
7
7
import android .provider .MediaStore ;
8
+ import android .support .design .widget .FloatingActionButton ;
8
9
import android .support .v7 .app .AlertDialog ;
9
10
import android .support .v7 .app .AppCompatActivity ;
11
+ import android .support .v7 .widget .AppCompatTextView ;
10
12
import android .support .v7 .widget .Toolbar ;
11
13
import android .text .Html ;
14
+ import android .util .Log ;
12
15
import android .view .MenuItem ;
13
16
import android .view .View ;
14
17
import android .widget .Button ;
15
18
16
19
import com .camerakit .CameraKit ;
17
20
import com .camerakit .CameraKitView ;
21
+ import com .camerakit .type .CameraSize ;
18
22
import com .jpegkit .Jpeg ;
19
23
import com .jpegkit .JpegImageView ;
20
24
@@ -23,9 +27,19 @@ public class MainActivity extends AppCompatActivity implements Toolbar.OnMenuIte
23
27
private CameraKitView cameraView ;
24
28
private Toolbar toolbar ;
25
29
26
- private Button photoButton ;
27
- private Button flashButton ;
28
- private Button facingButton ;
30
+ private AppCompatTextView facingText ;
31
+ private AppCompatTextView flashText ;
32
+ private AppCompatTextView previewSizeText ;
33
+ private AppCompatTextView photoSizeText ;
34
+
35
+ private Button flashAutoButton ;
36
+ private Button flashOnButton ;
37
+ private Button flashOffButton ;
38
+
39
+ private FloatingActionButton photoButton ;
40
+
41
+ private Button facingFrontButton ;
42
+ private Button facingBackButton ;
29
43
30
44
private Button permissionsButton ;
31
45
@@ -42,14 +56,27 @@ protected void onCreate(Bundle savedInstanceState) {
42
56
toolbar .inflateMenu (R .menu .main );
43
57
toolbar .setOnMenuItemClickListener (this );
44
58
59
+ facingText = findViewById (R .id .facingText );
60
+ flashText = findViewById (R .id .flashText );
61
+ previewSizeText = findViewById (R .id .previewSizeText );
62
+ photoSizeText = findViewById (R .id .photoSizeText );
63
+
45
64
photoButton = findViewById (R .id .photoButton );
46
65
photoButton .setOnClickListener (photoOnClickListener );
47
66
48
- flashButton = findViewById (R .id .flashButton );
49
- flashButton .setOnClickListener (flashOnClickListener );
67
+ flashAutoButton = findViewById (R .id .flashAutoButton );
68
+ flashOnButton = findViewById (R .id .flashOnButton );
69
+ flashOffButton = findViewById (R .id .flashOffButton );
50
70
51
- facingButton = findViewById (R .id .facingButton );
52
- facingButton .setOnClickListener (facingOnClickListener );
71
+ flashAutoButton .setOnClickListener (flashAutoOnClickListener );
72
+ flashOnButton .setOnClickListener (flashOnOnClickListener );
73
+ flashOffButton .setOnClickListener (flashOffOnClickListener );
74
+
75
+ facingFrontButton = findViewById (R .id .facingFrontButton );
76
+ facingBackButton = findViewById (R .id .facingBackButton );
77
+
78
+ facingFrontButton .setOnClickListener (facingFrontOnClickListener );
79
+ facingBackButton .setOnClickListener (facingBackOnClickListener );
53
80
54
81
permissionsButton = findViewById (R .id .permissionsButton );
55
82
permissionsButton .setOnClickListener (new View .OnClickListener () {
@@ -72,6 +99,31 @@ public void onPermissionsFailure() {
72
99
permissionsButton .setVisibility (View .VISIBLE );
73
100
}
74
101
});
102
+
103
+ cameraView .setCameraListener (new CameraKitView .CameraListener () {
104
+ @ Override
105
+ public void onOpened () {
106
+ Log .v ("CameraKitView" , "CameraListener: onOpened()" );
107
+ }
108
+
109
+ @ Override
110
+ public void onClosed () {
111
+ Log .v ("CameraKitView" , "CameraListener: onClosed()" );
112
+ }
113
+ });
114
+
115
+ cameraView .setPreviewListener (new CameraKitView .PreviewListener () {
116
+ @ Override
117
+ public void onStart () {
118
+ Log .v ("CameraKitView" , "PreviewListener: onStart()" );
119
+ updateInfoText ();
120
+ }
121
+
122
+ @ Override
123
+ public void onStop () {
124
+ Log .v ("CameraKitView" , "PreviewListener: onStop()" );
125
+ }
126
+ });
75
127
}
76
128
77
129
@ Override
@@ -116,35 +168,105 @@ public boolean onMenuItemClick(MenuItem item) {
116
168
public void onClick (View v ) {
117
169
cameraView .captureImage (new CameraKitView .ImageCallback () {
118
170
@ Override
119
- public void onImage (CameraKitView vew , final byte [] photo ) {
120
- runOnUiThread (new Runnable () {
171
+ public void onImage (CameraKitView view , final byte [] photo ) {
172
+ new Thread (new Runnable () {
121
173
@ Override
122
174
public void run () {
123
- Jpeg jpeg = new Jpeg (photo );
124
- imageView .setJpeg (jpeg );
175
+ final Jpeg jpeg = new Jpeg (photo );
176
+ imageView .post (new Runnable () {
177
+ @ Override
178
+ public void run () {
179
+ imageView .setJpeg (jpeg );
180
+ }
181
+ });
125
182
}
126
- });
183
+ }). start () ;
127
184
}
128
185
});
129
186
}
130
187
};
131
188
132
- private View .OnClickListener flashOnClickListener = new View .OnClickListener () {
189
+ private View .OnClickListener flashAutoOnClickListener = new View .OnClickListener () {
190
+ @ Override
191
+ public void onClick (View v ) {
192
+ if (cameraView .getFlash () != CameraKit .FLASH_AUTO ) {
193
+ cameraView .setFlash (CameraKit .FLASH_AUTO );
194
+ updateInfoText ();
195
+ }
196
+ }
197
+ };
198
+
199
+ private View .OnClickListener flashOnOnClickListener = new View .OnClickListener () {
133
200
@ Override
134
201
public void onClick (View v ) {
135
- if (cameraView .getFlash () == CameraKit .FLASH_OFF ) {
202
+ if (cameraView .getFlash () != CameraKit .FLASH_ON ) {
136
203
cameraView .setFlash (CameraKit .FLASH_ON );
137
- } else {
204
+ updateInfoText ();
205
+ }
206
+ }
207
+ };
208
+
209
+ private View .OnClickListener flashOffOnClickListener = new View .OnClickListener () {
210
+ @ Override
211
+ public void onClick (View v ) {
212
+ if (cameraView .getFlash () != CameraKit .FLASH_OFF ) {
138
213
cameraView .setFlash (CameraKit .FLASH_OFF );
214
+ updateInfoText ();
139
215
}
140
216
}
141
217
};
142
218
143
- private View .OnClickListener facingOnClickListener = new View .OnClickListener () {
219
+ private View .OnClickListener facingFrontOnClickListener = new View .OnClickListener () {
144
220
@ Override
145
221
public void onClick (View v ) {
146
- cameraView .toggleFacing ( );
222
+ cameraView .setFacing ( CameraKit . FACING_FRONT );
147
223
}
148
224
};
149
225
226
+ private View .OnClickListener facingBackOnClickListener = new View .OnClickListener () {
227
+ @ Override
228
+ public void onClick (View v ) {
229
+ cameraView .setFacing (CameraKit .FACING_BACK );
230
+ }
231
+ };
232
+
233
+ private void updateInfoText () {
234
+ String facingValue = cameraView .getFacing () == CameraKit .FACING_BACK ? "BACK" : "FRONT" ;
235
+ facingText .setText (Html .fromHtml ("<b>Facing:</b> " + facingValue ));
236
+
237
+ String flashValue = "OFF" ;
238
+ switch (cameraView .getFlash ()) {
239
+ case CameraKit .FLASH_OFF : {
240
+ flashValue = "OFF" ;
241
+ break ;
242
+ }
243
+
244
+ case CameraKit .FLASH_ON : {
245
+ flashValue = "ON" ;
246
+ break ;
247
+ }
248
+
249
+ case CameraKit .FLASH_AUTO : {
250
+ flashValue = "AUTO" ;
251
+ break ;
252
+ }
253
+
254
+ case CameraKit .FLASH_TORCH : {
255
+ flashValue = "TORCH" ;
256
+ break ;
257
+ }
258
+ }
259
+ flashText .setText (Html .fromHtml ("<b>Flash:</b> " + flashValue ));
260
+
261
+ CameraSize previewSize = cameraView .getPreviewResolution ();
262
+ if (previewSize != null ) {
263
+ previewSizeText .setText (Html .fromHtml (String .format ("<b>Preview Resolution:</b> %d x %d" , previewSize .getWidth (), previewSize .getHeight ())));
264
+ }
265
+
266
+ CameraSize photoSize = cameraView .getPhotoResolution ();
267
+ if (photoSize != null ) {
268
+ photoSizeText .setText (Html .fromHtml (String .format ("<b>Photo Resolution:</b> %d x %d" , photoSize .getWidth (), photoSize .getHeight ())));
269
+ }
270
+ }
271
+
150
272
}
0 commit comments