Wie übergebe ich ein Kamerabild von einer Absicht an eine andere Absicht in Android?
-
11-12-2019 - |
Frage
Ich versuche, ein Kamerabild von einer Absicht zu einer anderen Absicht zu senden, um es anzuzeigen.Derzeit versuche ich die folgende Methode zu verwenden,
Sobald das Bild aufgenommen wurde
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case CAMERA_RECEIPTREQUEST:
if(resultCode== Activity.RESULT_OK)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
//ImageView jpgView = (ImageView)findViewById(R.id.imageView1);
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
In der zweiten Aktivität
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiptreview);
//creating view ids
createViewIds();
Bitmap receiptimage = (Bitmap) getIntent().getExtras().getParcelable("imagepass");
receipt.setImageBitmap(receiptimage);
}
Aber es zeigt StackOverFlow-Fehler,
at java.util.HashMap$EntrySet.iterator(HashMap.java:944)
at android.os.Parcel.writeMapInternal(Parcel.java:486)
at android.os.Bundle.writeToParcel(Bundle.java:1552)
at android.os.Parcel.writeBundle(Parcel.java:502)
at android.content.Intent.writeToParcel(Intent.java:5477)
Ich bin mir nicht sicher, ob ich die falsche Methode versuche.Ich suche nach einem Beispiel oder einer Lösung dafür.
Danke für eure Hilfe Jungs.
Lösung
verwenden
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", receipt );
startActivity(imagepass);
statt
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
Sie übergeben die Intent Instanz imagepass in imagepass.putExtra("imagepass", imagepass);
also pass auf Bitmap
beispiel in imagepass.putExtra("imagepass", receipt );
BEARBEITEN:
informationen zum Übergeben von Bildern (Bitmaps) zwischen Aktivitäten in Android finden Sie in diesen Beiträgen:
wie übergeben Sie Bilder (Bitmaps) zwischen Android-Aktivitäten mithilfe von Bundles?
Wie kann ich ein Bitmap-Objekt von einer Aktivität an eine andere übergeben
Andere Tipps
Von dem, was ich sehen kann, wie ich das Abzulassen selbst sehen kann, um gesendet zu werden.Versuchen Sie: generasacodicetagpre.
könnte arbeiten, immer noch neu für Android selbst.
Wir können eine andere Möglichkeit versuchen, das Bild in Byte-Array umzuwandeln, und das Byte-Array durch Absicht übergeben, und in der aufgerufenen Aktivität können wir das Byte-Array in Bitmap