Ich habe Probleme damit herauszufinden, wie ich die Bildansicht auf das Bild einstellen kann, das ich gerade mit der Kamera aufgenommen habe. Wäre ein Bonus, wenn es mehrere Möglichkeiten gäbe, mehrere Bilder gleichzeitig anzuzeigen. Immer wenn ich auf die Schaltfläche klicke, wird ein vorher aufgenommenes Bild angezeigt, dann öffnet sich die Kamera, was nicht richtig ist. Ich möchte, dass die Bildansicht leer ist, ich klicke auf die Schaltfläche, mache ein Bild, dann wird das Bild in der Bildansicht angezeigt. Ich glaube, dass diese Linie fehl am Platz ist, aber ich bin unsicher, wie/wohin ich sie bewegen soll. mimageView.setImageURI(outputFileUri);
Android Studio: Wie man eine externe Datei (Foto von der Kamera) auf eine Bildansicht einstellt
public class cameraclass extends Activity {
int TAKE_PHOTO_CODE = 0;
public static int count = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
final ImageView mimageView;
mimageView = (ImageView) this.findViewById(R.id.image_from_camera);
// Here, we are making a folder named picFolder to store
// pics taken by the camera using this application.
final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/picFolder/";
File newdir = new File(dir);
newdir.mkdirs();
Button capture = (Button) findViewById(R.id.take_image_from_camera);
capture.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Here, the counter will be incremented each time, and the
// picture taken by camera will be stored as 1.jpg,2.jpg
// and likewise.
count++;
String file = dir+count+".jpg";
File newfile = new File(file);
try {
newfile.createNewFile();
}
catch (IOException e)
{
}
//Uri outputFileUri = Uri.fromFile(newfile);
Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext() , "com.example.android.com220finalapp.provider", newfile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
mimageView.setImageURI(outputFileUri);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
Log.d("CameraDemo", "Pic saved");
}
}
}
Vielen Dank! Entschuldigung, ich habe noch nie zuvor eine Bibliothek benutzt, da dies ein Gruppenprojekt ist, an dem wir alle zusammen mit GitHub arbeiten, wird jeder andere Benutzer die Bibliothek herunterladen müssen, die ich benutze? Oder durch die Implementierung in meinem Code wird es automatisch sein. –
@FrankMascia: "Wird jeder andere die Bibliothek herunterladen müssen, die ich benutze? Oder durch die Implementierung in meinem Code wird es automatisch sein" - beides. Es ist fast garantiert, dass Sie bereits Bibliotheken verwenden. Suchen Sie in der 'build.gradle' Datei Ihres Moduls (z. B.' app/build.gradle') nach dem Wort 'dependencies'. Die darin enthaltenen 'compile'-Anweisungen stellen Bibliotheken dar, die Sie verwenden. Das Hinzufügen einer Bibliothek fügt in der Regel nur eine weitere Kompilierungsanweisung hinzu. – CommonsWare
Super, danke nochmal. –