case R.id.nc_pickbtn:
Intent intent_pick = new Intent(Intent.ACTION_PICK);
intent_pick.setType(MediaStore.Images.Media.CONTENT_TYPE);
intent_pick.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent_pick, REQ_CODE_SELECT_IMAGE);
break;
위는 갤러리로 이동하는 버튼이고요.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Toast.makeText(getBaseContext(), "resultCode : " + requestCode, Toast.LENGTH_SHORT).show();
try{
//Uri에서 이미지 이름을 얻어온다.
//String name_str = getImageNameToUri(data.getData());
//이미지데이터를 비트맵으로 받아온다.
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
ImageView SelectesNC = (ImageView)findViewById(R.id.SelectedNC);
//배치해 놓은 ImageView에 set
SelectesNC.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageByte = baos.toByteArray();
Toast.makeText(getApplicationContext(), "DB에?", Toast.LENGTH_SHORT).show();
<strong>dbHandler.insertImage(imageByte);
Toast.makeText(getApplicationContext(), "DB에 저장성공", Toast.LENGTH_SHORT).show();
showImg();
Log.d("receive", "blob : " + 4);
}catch (FileNotFoundException e){
//TODO Auto-generated catch block
e.printStackTrace();
Log.d("receive", "blob : " + 1);
}catch(IOException e){
//TODO Auto-generated catch block
e.printStackTrace();
Log.d("receive", "blob : " + 2);
}catch(Exception e){
e.printStackTrace();
Log.d("receive", "blob : " + 3);
}
}
private void showImg() {
dbHandler = new DBHandler(this);
try{
// String sql1 = "select ncimg from members where "+ code;
Cursor mCursor = db.rawQuery("select ncimg from members where "+ code, null);
byte[] image = mCursor.getBlob(mCursor.getColumnIndex("ncimg"));
// Bitmap bm = BitmapFactory.decodeByteArray(image, 0, image.length);
ImageView blobImg = (ImageView) findViewById(R.id.dbImg);
blobImg.setImageBitmap(BitmapFactory.decodeByteArray(image, 0, image.length));
mCursor.close();
}catch(Exception e){
e.printStackTrace();
}
}
위 코드에서 SelectesNC.setImageBitmap(bitmap); 여기까진 되는거 같아요.
근데 그 다음부터 insertImage가 오류인거 같은데 잘모르겠네요...
밑에는 dbHandler에 insertImage부분이에요.
public long insertImage(byte[] image){
db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("ncimg", image);
Log.w("MypageModify", String.valueOf(image));
long result = db.update("members", values, null, null);
return result;
}
현재상황은 이미지를 불러와 SelectdNC에 까지 표시해주는건 되는데,
그 후에 db에 blob타입으로 저장하고 싶은거죠. 현재 저 테이블에 ncimg는 null이 들어가있고요.
그리고 showImg에서 dbImg에 db에 저장된 이미지를 다시 불러와서 확인해 주는걸 하고싶은겁니다.ㅠㅠ
로그부분도 올려드리고 싶은데 초과라고 못쓰네요ㅠㅠ
도와주세요.ㅠㅠ