Foto mit der Kamera geschossen, das Ergebnisbild bleibt klein. Was nun ?

  • 3 Antworten
  • Letztes Antwortdatum
Z

zblack

Gast
Hallo Freunde.
ich rufe in meiner App mit dem Code:
Code:
Intent intent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
				startActivityForResult(intent, REQUEST_CODE_PICK_FOTO);

die Kamera des Handys auf, schieße das Foto und lasse in dem anderen Fenster der App das Bild anzeigen. Doch das Bild hat jedes mal eine kleine Auflösung als es tatsächlich sein sollte.
In onResultMethode übergebe ich bytearray des Bildes der anderen Activity.
Code:
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK){
			Bundle extras = data.getExtras();
			Bitmap b = (Bitmap) extras.get("data");
			ByteArrayOutputStream stream = new ByteArrayOutputStream();
			b.compress(Bitmap.CompressFormat.PNG, 100, stream);
			byte[] byteArray = stream.toByteArray();
			Log.e("SIZE OFF ARRAY IN MAINACTIVITY", "" + byteArray.length);
			intent = new Intent (this, TestActivity.class);
			intent.putExtra("byteArray", byteArray);
			startActivity(intent);
		}
	}
in der anderen Activity bekomme ich dann das byte Array mit diesem Code:
Code:
iv = (ImageView) findViewById(R.id.fotoemage);
		
		byte [] b = getIntent().getExtras().getByteArray("byteArray");
		Log.e("SIZE OFF ARRAY IN TestActivity", "" + b.length);
		
		//byte[] blob=c.getBlob("yourcolumnname");
		Bitmap bmp=BitmapFactory.decodeByteArray(b,0,b.length);
		iv.setImageBitmap(bmp);
und lasse das Bild anzeigen.
Doch leider ist das Bild klein. Ich hatte eine Vermutung dass die große des byte Arrays bei der übergabe sich warum auch immer verändert, doch das ist nicht der Fall. Die Grosse ist in beiden Activitys gleich.

Kann mir jemand helfen ? Habe ich irgendwo was vergessen ?
MfG.
 
keine ideen ?
 
wenn ich das mit EXTRA_OUTPUT mache und meine startActivity for result so lasse, dann kriege ich ne NullPointer Exception in der Zeile :
Bundle extras = data.getExtras();

der Code für den Aufruf habe ich folgendermaßen verändert:

Code:
Intent intent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                fileName = String.format("%d.jpg",
                        System.currentTimeMillis());
                Log.i("fileName", fileName);
                file = new File(Environment.getExternalStorageDirectory(),fileName);
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
                
                startActivityForResult(intent, REQUEST_CODE_PICK_FOTO);
 
Zurück
Oben Unten