마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 startactivityforresult bitmap 질문합니다

0 추천
받는쪽

public void onClick(View v) {
   Intent intent = new Intent(menu.this, selling.class);
   Bundle extras = intent.getExtras();
   startActivityForResult(intent, DATA);
   }
  });

@Override   
    protected void onActivityResult(int requestCode, int resultCode, Intent data){       
     super.onActivityResult(requestCode, resultCode, data);
     if(requestCode==DATA){
      if(resultCode == RESULT_OK){
      msg = data.getStringExtra("msg");
      cost = data.getStringExtra("money");

//요기가 잘못된건 알겟는데 해결법을 모르겟네요.
      Bundle extras = new Bundle();
      Bitmap bmp = (Bitmap) extras.getParcelable("imagebitmap");
      img1.setImageBitmap(bmp);

//-------------------------
 }
}
 }

보내는쪽

img1 =(ImageView)findViewById(R.id.image1);

public void onClick(View v) {
    img1.buildDrawingCache();
    Bitmap image= img1.getDrawingCache();
    Bundle extras = new Bundle();
    extras.putParcelable("imagebitmap", image);
                //다른 액티비티를 호출하기 위한 인텐트 생성하기.
                Intent intent=new Intent();
                //호출되는 액션에 보낼 부가정보 담기
                intent.putExtra("msg", edit.getText().toString());
                intent.putExtra("money", edit3.getText().toString());
                intent.putExtra("imagebitmap", image);
    Toast.makeText(getApplicationContext(),
      "물건이 등록되었습니다.", Toast.LENGTH_SHORT).show();
    setResult(RESULT_OK, intent);
    finish();}

string은 제대로 보내고 받고하는데 image를 못넘기겟네요...

resource를 잡아줘서 해줄순 없습니다. img1이 갤러리에서 선택해서 가져오는 형식이라서요..

내일까지 완성해야되는데 ㅜㅜ

답변 부탁드릴게요
비번234 (170 포인트) 님이 2014년 6월 16일 질문

1개의 답변

0 추천
 
채택된 답변
저코드가 왜 안되는지는 안해봐서 잘 모르겠으나...

이미지를 갤러리에서 가져오는거라면 패스를 넘기는방법이나

바이트로 변환하여 보내는 방법이 있겠네요

http://stackoverflow.com/questions/11010386/send-bitmap-using-intent-android
여룽이 (4,750 포인트) 님이 2014년 6월 17일 답변
비번234님이 2014년 6월 17일 채택됨
답변감사합니다
되진않네요 ㅎ
getintent를 못쓰는게 Main - menu - selling 으로 되어있어서 그래용.
Main - menu - selling 이게 무슨의미인지는 잘모구겠구여 ^^...
getIntent를 쓸필요는 없고 비번님 코드에 intent.putExtra("imagebitmap", image); 이부분을 링크 예제처럼 바꿔보면 어떨가 해서요
받는쪽이 menu class고 보내는쪽이 selling 클래스에요
예제에서 받는쪽에서 getIntent().getByteArrayExtra();
를써서 받아줬거든요
다르게 받는 방법은 없을까요?
intent.putExtra("imagebitmap", image); 이 코드를 아래처럼 바꾸고

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

Intent intent = new Intent();
intent.putExtra("image",byteArray);

받는쪽 onActivityResult에서 아래처럼 받아서 써보라는..
byte[] byteArray = intent.getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
받는쪽
byte[] byteArray = intent.getByteArrayExtra("image");
-> byte[] byteArray = data.getByteArrayExtra("image");
하니까 되네요.. 사랑합니다..
...