2016-05-03 5 views
0

Ich habe eine Aktivität, in der ich die Kamera in der Oberfläche öffnen und ein Bild erfassen. Das aufgenommene wird in der nächsten Aktivität der Bildansicht gezeigt. Ergebnis Aktivität zeigt einen weißen Bildschirm Daten nicht übergeben in Ergebnis-Aktivität Bitte sagen Sie mir den Code, wie ich Bild zur nächsten Aktivität übergebe?Probleme in Camera Intent und Bildübergabe

public class MainActivity extends AppCompatActivity 

{ 

int REQUEST_IMAGE_CAPTURE = 1; 


@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 

public void takePicture(View v) { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == REQUEST_IMAGE_CAPTURE) 
    { 
     if (resultCode == RESULT_OK) 
     { 
      Intent i = new Intent(this,Result.class); 
      i.putExtra("filepath",1); 
      startActivity(i); 
     } 
     } 
    } 
} 

Ergebnis Tätigkeit

public class Result extends Activity 


{ 


ImageView iv; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.image); 
    iv = (ImageView)findViewById(R.id.imageView); 
    Bundle extras = getIntent().getExtras(); 
    Bitmap bmp = (Bitmap) extras.getParcelable("filepath"); 
    iv.setImageBitmap(bmp); 
    } 
} 

Antwort

0

Änderung dieser i.putExtra("filepath",yourfilepath); und es in der nächsten Aktivität erhalten ..

Intent intent=getIntent(); 
String filepath=intent.getStringExtra("filepath"); 

Decode es in Bitmap ..

File sd = Environment.getExternalStorageDirectory(); 
File image = new File(sd+filePath, imageName); 
BitmapFactory.Options bmOptions = new BitmapFactory.Options(); 
Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath(),bmOptions); 
bitmap = Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true); 
imageView.setImageBitmap(bitmap); 

Ad tionell können Sie imagepath hier .. In onActivityResult(...){

Bitmap photo = (Bitmap) data.getExtras().get("data"); 
Uri tempUri = getImageUri(getApplicationContext(), photo); 

    // CALL THIS METHOD TO GET THE ACTUAL PATH 
    String finalpath =getRealPathFromURI(tempUri) 
    //now you can putextra here 

Hier ist die Methoden erhalten.

public Uri getImageUri(Context inContext, Bitmap inImage) { 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
    return Uri.parse(path); 
} 

public String getRealPathFromURI(Uri uri) { 
    Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
    cursor.moveToFirst(); 
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
    return cursor.getString(idx); 
} 
Verwandte Themen