Ich habe eine Schaltfläche, die MainActivity in CameraActivity mit einer Kameravorschau und einer Fortschrittsanzeige ändert. Kurz bevor die Aktivität wechselt, wird jedoch der Fortschrittsbalken angezeigt, sodass Sie den Fortschrittsbalken für einen Sekundenbruchteil auf MainActivity sehen. Was könnte das verursachen? DankeAndroid - Die Ansicht der nächsten Aktivität wird zu früh angezeigt
Hier ist ein paar relevante Code.
MainActivity.java
public void openCamera(View view) {
if (getCameraInstance() == null) {
Toast.makeText(FeedActivity.this, "Camera is unavailable right now", Toast.LENGTH_LONG).show();
} else {
Intent i = new Intent(MainActivity.this, CameraActivity.class);
startActivity(i);
}
}
CameraActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
getSupportActionBar().hide();
progressBar = (ProgressBar) findViewById(R.id.progressBar);
animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 100);
animation.setDuration(10000);
animation.setInterpolator(new LinearInterpolator());
// Create an instance of Camera
mCamera = getCameraInstance();
// Create our Preview view and set it as the content of our activity.
mPreview = new CameraPreview(this, mCamera, currentCameraId);
preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mPreview);
}
/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}
Dank. Ich bin mir jedoch nicht sicher, wie ich den Link verwenden soll, den Sie gepostet haben. Mache ich eine neue Klasse, die das beinhaltet, und nenne das stattdessen eine neue CameraPreview? Außerdem kann ich die Ladegeschwindigkeit der Kamera optimieren, so dass ich keine Zwischenvorschau (oder Ladevorschau) brauche. – Jill
versuchen, Callback zu verwenden mCamera.setOneShotPreviewCallback (previewCallback); in der VorschauCallback show progressbar –
@Jill überprüfe meine aktualisierte Antwort –