2016-05-03 12 views
0

私はカメラを開いて画像をキャプチャします。キャプチャは画像ビューの次のアクティビティに表示されますが、結果アクティビティには通過しない白い画面データが表示されますresultアクティビティへ次のアクティビティにイメージを渡す方法をコードで教えてください。カメラの意図と画像の受け渡しの問題

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); 
     } 
     } 
    } 
} 

結果の活動

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); 
    } 
} 

答えて

0

変更このi.putExtra("filepath",yourfilepath); し、次の活動にそれを得る...ビットマップの

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

デコードそれを...

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); 

広告ditionallyあなたはここで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 

は方法..ですここでのImagePathを得ることができます。

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); 
}