ksoap2를 통해 string을 받아옵니다.

이 string 을 byte[]로 변환하고

 

--

 Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);


byte[]를 위와 같이 bitmap으로 변환했습니다.

 

문제는 바로 이미지 뷰로 띄우려고 했는데 띄어지지가 않네요....

 

 img.setImageBitmap(bmp);

 

img는 ImageView입니다.

 

안뜹니다....

 

그래서 sd카드에 저장후 불러오려고 했는데..

아래 코드를 보면...

 private void GetImg() {
  try {
   // 웹서비스를 통해 이미지의 byte[]를 불러오는 부분
   SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
   request.addProperty("m_title", m_title);
   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
     SoapEnvelope.VER11);
   envelope.dotNet = true;
   envelope.setOutputSoapObject(request);
   HttpTransportSE aht = new HttpTransportSE(URL);
   aht.call(SOAP_ACTION, envelope);
   // resultstring을 string에서 변환
   SoapPrimitive resultString = (SoapPrimitive) envelope.getResponse();
   String bstr = resultString.toString();
   // 다시 String형식으로 byte[]으로 변환
   byte[] b = bstr.getBytes();
   // byte[]을 비트맵으로 변환
   bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
   // 파일 입력 부분...
   String path = "/mnt/sdcard/" + m_title + ".jpg";
   File file = new File(path);
   FileOutputStream fos = new FileOutputStream(file);
   // !!!!!!!!!!!!!!!!!!!!!!!
   bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
   fos.flush();
   fos.close();
   // 뜨지 않음
   img.setImageBitmap(bmp);
   Toast.makeText(ViewImage.this, "성공", Toast.LENGTH_SHORT).show();
  } catch (Exception e) {
   Toast.makeText(ViewImage.this, "에러", Toast.LENGTH_SHORT).show();
  }
 }

bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);

이 함수가 문제입니다....

이 함수 없을때 까지는 파일이 잘만들어 지고 compress하면 catch로 넘어가 버립니다.

file.write(b)로 했지만 저장은 되고 비트맵의 이미지는 나오지 않습니다.

제발 도와주세요.....

 

아니면 바로 bitmap을 setImageBitmap으로 띄우는 방법좀 알려주세요.............