2012-04-02 4 views
1

In meiner App öffne ich die Kamera und möchte diese Datei unter einem bestimmten Namen speichern. Ich benutze diesen Code:Geben Sie dem Bild einen Namen, wenn die Intent-Kamera verwendet wird

public void onLongPress(MotionEvent e) { 
     // TODO Auto-generated method stub 
     Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("new-photo-name.jpg"))); 
     startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

} 
protected void onActivityResult1(int requestCode, int resultCode, Intent data) { 
        if (requestCode == CAMERA_PIC_REQUEST) { 
          Bitmap image = (Bitmap) data.getExtras().get("data"); 
        } 
} 

Es macht die Kamera öffnen, kann ich und das Foto speichern, aber es gibt nicht den guten Namen. Jedes Mal, wenn ich das Bild speichere, gibt er dem Bild einen anderen Namen, 1 Beispiel ist: "13333675392558.jpg". Ich verstehe nicht, wie er mit solchen Zahlen kommt.

Warum verwendet mein Code nicht den Namen: "new-photo-name.jpg"?

Und/Oder was mache ich falsch?

Danke schon, Bigflow

Antwort

0

Ich habe es funktioniert, wissen aber nicht genau das gleiche Problem noch nicht, aber dieser Code für mich gearbeitet:

private Uri outputFileUri; 
    public void onLongPress(MotionEvent e) { 
     // TODO Auto-generated method stub 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     File file = new File(Environment.getExternalStorageDirectory(), "/DCIM/Camera/new-photo-name.jpg"); 

     outputFileUri = Uri.fromFile(file); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent, TAKE_PICTURE); 
    } 

onLongPress hat etwas mit Geste (touch) Aktionen zu tun, könnten Sie auch ein Knopf hier.

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == TAKE_PICTURE){ 
      System.out.println("string of file name = "+outputFileUri.toString()); 
     } 
} 

Wirklich kleiner Code, sondern wirkt wie ein Zauber

1
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

ist die Linie, die den Dateinamen setzt. Es ist diese Zeile, die Sie ändern müssen.

+0

Changed es: 'intent.putExtra (MediaStore.EXTRA_OUTPUT "new-Foto-name.jpg");' Aber irgendwie, das didn‘ t arbeiten. – Bigflow

+0

String ist nicht Uri. Ich weiß nicht, ob dies die beste ist, verwendet meine App Uri.fromFile (neue Datei (String fileName)) – pouzzler

+0

Ich habe den Code geändert, so dass es viel einfacher ist, zu betrachten. Aber das funktioniert auch nicht :( – Bigflow

Verwandte Themen