Appareil photo Android setDisplayOrientation ne fonctionne pas
je suis le travail de la caméra projet android.mon problème est la caméra setDisplayOrientation
méthode ne fonctionne pas et mon prévisualisation de la caméra sur la surface toujours paysage.je veux attendre portrait de prévisualisation de la caméra sur SurfaceView. Je suis en utilisant Samsung galaxy y (Android 2.3.5) et mon code d'activité indiqué ci-dessous:
import java.io.IOException;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
public class AndroidCamera extends Activity implements SurfaceHolder.Callback{
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;;
String stringPath = "/sdcard/samplevideo.3gp";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonStartCameraPreview = (Button)findViewById(R.id.startcamerapreview);
Button buttonStopCameraPreview = (Button)findViewById(R.id.stopcamerapreview);
getWindow().setFormat(PixelFormat.UNKNOWN);
surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
buttonStartCameraPreview.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
if(!previewing){
camera = Camera.open();
if (camera != null){
try {
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
previewing = true;
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}});
buttonStopCameraPreview.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
if(camera != null && previewing){
camera.stopPreview();
camera.release();
camera = null;
previewing = false;
}
}});
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
//TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
//TODO Auto-generated method stub
}
}
mon problème illustré coup de figure:
Quelqu'un peut aider avec un code ou un tutoriel liens et merci pour passer votre précieux temps
est-ce de travailler sur d'autres téléphones??? ou avez-vous essayé seulement avec celui-ci???
j'ai essayé avec celui-ci
j'ai essayé avec celui-ci
OriginalL'auteur Dinesh | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
J'ai finalement trouvé la solution et de trouver aperçu de l'appareil photo surface d'affichage de code suivant:
Il est besoin au minimum sdk 2.3 ou supérieur
pointeur null erreur .
OriginalL'auteur Dinesh
si vous souhaitez faire pivoter l'aperçu de la sortie, essayez ceci:
OriginalL'auteur Ofer Orgal
Aussi, vérifiez si la fonction "Auto-rotation de l'Écran" option est cochée dans les Paramètres du téléphone (Paramètres > Affichez ou de l'Écran dépend de la version d'android).
Il m'a fallu un certain temps jusqu'à un compris. Si elle n'est pas cochée, l'orientation de la caméra dans l'application peut être ignoré.
OriginalL'auteur Bruno Siqueira
Pour le bas de l'API niveaux, vous pouvez utiliser:
et il suffit d'appeler
setCameraDisplayOrientationAPI8();
sur votresurfaceChanged
func.plus:
espère que cette aide.
OriginalL'auteur Ofer Orgal