Android - ein Bild von vorne Kamera dreht das Foto
Ich bin der Erstellung einer app in android, in dem der Benutzer werden in der Lage sein, um ein Bild von der front-Kamera im portrait-Modus nur. Ich habe das erreicht Befestigung der Kamera-Ansicht bis zum Porträt, aber wenn ein Bild erscheint gedreht. Das Schlimmste ist, dass die Richtung der Drehung ist unterschiedlich in den verschiedenen Telefonen, einer Telefon-es ist rechts gedreht, während in einem anderen es ist Links gedreht.
Hier ist mein code-Schnipsel
Sicherstellen Aktivität spielt in der Porträt-nur
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Hol Kamera
@Override
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
Camera.CameraInfo info=new Camera.CameraInfo();
for (int i=0; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
camera=Camera.open(i);
}
}
}
if (camera == null) {
camera=Camera.open();
}
}
Kamera drehen
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if(previewing){
camera.stopPreview();
previewing = false;
}
if (camera != null){
try {
camera.setPreviewDisplay(surfaceHolder);
camera.setDisplayOrientation(90);
initPreview(width, height);
startPreview();
previewing = true;
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Bild
PictureCallback myPictureCallback_JPG = new PictureCallback(){
@Override
public void onPictureTaken(byte[] data, Camera arg1) {
//new SavePhotoTask().execute(data);
Intent myIntent = new Intent(MainActivity.this, CropActivity.class);
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data .length);
myIntent.putExtra("image", bitmap);
MainActivity.this.startActivity(myIntent);
}};
BMP senden wird immer erscheinen, in Gedrehter form, aber nicht immer mit 90 Grad. Es sieht aus wie android 4.0 nicht nur rotiert, sondern spiegelt das Bild als gut. Ist es ein guter Weg, um zu erkennen und sicherzustellen, dass ich immer das richtige Bild?
was mir aufgefallen mit MIUI entspricht ICS 4.0.3 auf samsung s2 war, dass die Vorschau für die front-Kamera war ein Spiegel und das Bild war ok. ich denke, Menschen, die Festsetzung Ihre Haare gerade wieder in den SPIEGEL Modus in Ihre Reptilien-Hirn.
InformationsquelleAutor Kamal | 2012-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem mit den spiegeln und war herausgefunden zu sein, spezifisch für android 4.0+, So funktionierte dies
wenn ich dies Tue, die yoffset scheint gestört zu werden, als im Vergleich mit meiner Vorschau.
Dies hat mir geholfen! Nice one.
wie kann ich dies in video-Aufzeichnung. ich möchte video aufnehmen, wie snap-chat
schön, tun
matrix.setValues(new float[]{ -1, 0, 0, 0, 1, 0, 0, 0, 1});
ausreichen, um das Bild kippen entlang der y-AchseInformationsquelleAutor Kamal