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?

Nur ein Vorschlag: ist es nicht eine gute übung Anhängen, wird die bitmap direkt auf Vorsatz. Es kann dazu führen, Java Binder Fehlgeschlagen-Fehler.
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

Schreibe einen Kommentar