Ich versuche eine App zu erstellen, die ein Bild mit der Kamera aufnimmt und es an die Hauptaktivität zurücksendet, um es in einem ImageVew anzuzeigen. Ich habe ein Tutorial gesehen, das das Bild auf der SD-Karte speichert, wenn das Bild aufgenommen wird. Ich kann die Datei speichern, habe aber Schwierigkeiten, den Speicherort des gespeicherten Bildes zu ermitteln.Android - Beim Speichern eines Bildes ist es besser, es zu speichern oder temporär zu speichern.
Ich denke, dass das Speichern des Bildes auf der SD-Karte zu viel Arbeit ist, da das Bild nicht so wichtig ist.
Gibt es eine Möglichkeit, das Bild, das ich gerade mit der Kamera aufgenommen habe, in einem BitMap-Element zu "speichern"? Wenn ja, ist es effizienter als das Speichern auf der SD-Karte?
Hier ist meine MainActivity.java:
public class MainActivity extends AppCompatActivity {
private Uri imgLocation;
ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button capture = (Button) findViewById(R.id.am_btn_camera);
capture.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imgLocation = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "fname_" +
String.valueOf(System.currentTimeMillis()) + ".jpg"));
intent.putExtra(MediaStore.EXTRA_OUTPUT, imgLocation);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Log.e("URI",imgLocation.toString());
mImageView.setImageBitmap(BitmapFactory.decodeFile(imgLocation.toString()));
}
}}
Sie können eine In-Memory-Lösung verwenden, z. B. das Speichern der Bitmap in einem Singleton. Aber denken Sie daran, dies wird Ihre Android-Speicher essen. –
Danke Tim. Ich ging für den Ansatz, es in einer Bitmap zu speichern, aber es ist eine kleinere Version des Bildes, es wird für jetzt tun. Grüße. –