control commit
This commit is contained in:
parent
fed45c298b
commit
d808950dab
3 changed files with 8 additions and 98 deletions
|
@ -8,8 +8,6 @@ import android.widget.Toast;
|
|||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.camera.core.ImageCapture;
|
||||
import androidx.camera.lifecycle.ProcessCameraProvider;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
|
@ -18,18 +16,9 @@ import androidx.core.view.WindowInsetsCompat;
|
|||
import com.example.cameraxtestappjava.camera.CustomCamera;
|
||||
import com.example.cameraxtestappjava.camera.CustomCameraCallback;
|
||||
import com.example.cameraxtestappjava.databinding.ActivityMainBinding;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
ProcessCameraProvider cameraProvider;
|
||||
ImageCapture imageCapture;
|
||||
ImageCapture.OutputFileOptions outputFileOptions;
|
||||
ListenableFuture<ProcessCameraProvider> cameraProviderFuture;
|
||||
ContentValues contentValues;
|
||||
String fileName;
|
||||
Uri tempFileUri;
|
||||
|
||||
CustomCamera customCamera;
|
||||
ActivityMainBinding binding;
|
||||
|
||||
|
@ -68,78 +57,4 @@ public class MainActivity extends AppCompatActivity {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*private void setListeners() {
|
||||
binding.btnTakePicture.setOnClickListener(v -> capturePhoto());
|
||||
}
|
||||
|
||||
private void capturePhoto() {
|
||||
if (imageCapture == null) return;
|
||||
|
||||
fileName = System.currentTimeMillis() + "";
|
||||
|
||||
outputFileOptions = getOutputFileOptions(fileName);
|
||||
|
||||
imageCapture.takePicture(outputFileOptions, ContextCompat.getMainExecutor(this), new ImageCapture.OnImageSavedCallback() {
|
||||
@Override
|
||||
public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) {
|
||||
tempFileUri = outputFileResults.getSavedUri();
|
||||
Toast.makeText(MainActivity.this, "Image saved! " + tempFileUri, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull ImageCaptureException exception) {
|
||||
Toast.makeText(MainActivity.this, "Image Not Saved " + exception.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private ImageCapture.OutputFileOptions getOutputFileOptions(String name) {
|
||||
contentValues = new ContentValues();
|
||||
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, name);
|
||||
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");
|
||||
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
|
||||
contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/CameraXTestApp");
|
||||
}
|
||||
|
||||
return new ImageCapture.OutputFileOptions.Builder(
|
||||
getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues
|
||||
).build();
|
||||
}
|
||||
|
||||
private void setUpCamera() {
|
||||
cameraProviderFuture = ProcessCameraProvider.getInstance(this);
|
||||
cameraProviderFuture.addListener(() -> {
|
||||
try {
|
||||
cameraProvider = cameraProviderFuture.get();
|
||||
startSegPassCamera(cameraProvider);
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}, ContextCompat.getMainExecutor(this)); // por parametro
|
||||
}
|
||||
|
||||
private void startSegPassCamera(ProcessCameraProvider cameraProvider) {
|
||||
Log.d("TAGTAG", "UEEEP");
|
||||
CameraSelector cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA;
|
||||
|
||||
Preview preview = new Preview.Builder().build();
|
||||
preview.setSurfaceProvider(binding.pvViewfinder.getSurfaceProvider());
|
||||
|
||||
imageCapture = new ImageCapture.Builder().build();
|
||||
|
||||
try {
|
||||
cameraProvider.unbindAll();
|
||||
|
||||
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageCapture);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}*/
|
||||
}
|
|
@ -88,7 +88,6 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
if (mImageCapture == null) return;
|
||||
|
||||
String mFileName = System.currentTimeMillis() + "";
|
||||
|
||||
ImageCapture.OutputFileOptions mIutputFileOptions = getOutputFileOptions(mFileName);
|
||||
|
||||
try {
|
||||
|
@ -97,13 +96,11 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) {
|
||||
mTempFileUri = outputFileResults.getSavedUri();
|
||||
callback.onPictureTakenSuccess("Image saved! " + mTempFileUri);
|
||||
//Toast.makeText(mContext, "Image saved! " + tempFileUri, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull ImageCaptureException exception) {
|
||||
callback.onPictureTakenFailError(exception.getMessage());
|
||||
//Toast.makeText(mContext, "Image Not Saved " + exception.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
|
@ -133,7 +130,7 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
mCameraProviderFuture.addListener(() -> {
|
||||
try {
|
||||
mCameraProvider = mCameraProviderFuture.get();
|
||||
startCustomCamera(mCameraProvider);
|
||||
startCustomCamera();
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -141,8 +138,8 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
}, mExecutor); // por parametro
|
||||
}
|
||||
|
||||
private void startCustomCamera(ProcessCameraProvider cameraProvider) {
|
||||
Log.d("TAGTAG", "UEEEP");
|
||||
private void startCustomCamera() {
|
||||
Log.d("TAGTAG", "Start custom camera");
|
||||
CameraSelector cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA;
|
||||
|
||||
Preview preview = new Preview.Builder().build();
|
||||
|
@ -151,12 +148,10 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
mImageCapture = new ImageCapture.Builder().build();
|
||||
|
||||
try {
|
||||
cameraProvider.unbindAll();
|
||||
|
||||
cameraProvider.bindToLifecycle(mLifecycleOwner, cameraSelector, preview, mImageCapture);
|
||||
|
||||
mCameraProvider.unbindAll();
|
||||
mCameraProvider.bindToLifecycle(mLifecycleOwner, cameraSelector, preview, mImageCapture);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e("TAGTAG", "Couldn't start camera");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,7 +159,7 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText
|
|||
|
||||
@Override
|
||||
public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) {
|
||||
startCustomCamera(mCameraProvider);
|
||||
startCustomCamera();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
tools:context=".MainActivity">
|
||||
|
||||
<com.example.cameraxtestappjava.camera.CustomCamera
|
||||
android:id="@+id/scSegpassCameraView"
|
||||
android:id="@+id/ccCustomCamera"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
|
Loading…
Reference in a new issue