0
ボタンを押すとMainActivityがCameraActivityに変更され、カメラのプレビューと進行状況バーが表示されます。ただし、アクティビティが切り替わる直前にプログレスバーが表示されますので、MainActivityのプログレスバーを1秒間表示することになります。これを引き起こす原因は何ですか?ありがとうAndroid - 次のアクティビティからの表示が早すぎます
ここにいくつかの関連コードがあります。
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
}
感謝。私はあなたが投稿したリンクをどのように使用するか分かりません。それを含む新しいクラスを作成し、代わりに新しいCameraPreviewと呼んでいますか?また、カメラの読み込み速度を最適化するために何かできることがあるので、中間のプレビュー(または読み込みプレビュー)を持つ必要はありません。 – Jill
tryコールバックを使用するmCamera.setOneShotPreviewCallback(previewCallback);プレビューコールバックでプログレスバーを表示 –
@Jillで私の更新された回答を確認 –