画像と詳細を保存する顧客用のアプリを作成しています。カメラやSDカードで画像を閲覧しています。SDカードで画像を取得していImageView
ますが、データベースに挿入すると、データベースの画像列に挿入されません。
SDカードボタンをクリックして画像を参照しています。この画像は に表示されImageView
ます。
Button btnsdcard = (Button) findViewById(R.id.custbtnimage);
btnsdcard.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, ACTIVITY_SELECT_IMAGE);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
try {
InputStream imgstream = getContentResolver()
.openInputStream(selectedImage);
Bitmap btm = BitmapFactory.decodeStream(imgstream);
ImageView img = (ImageView) findViewById(R.id.imagecust);
img.setImageBitmap(btm);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
btm.compress(Bitmap.CompressFormat.PNG, 100, bo);
byte[] custimage = bo.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "file not fount",
Toast.LENGTH_SHORT).show();
}
} }
}
データベースの他のデータストアの保存ボタンをクリックすると、データベースの画像列が空になり、エラーは発生しません。
btnsave.setOnClickListener(new OnClickListener() {
@SuppressLint("ParserError")
public void onClick(View v) {
// TODO Auto-generated method stub
String name = custname.getText().toString();
String address = custaddress.getText().toString();
Long pincode = Long.parseLong(custpincode.getText().toString());
String city = custcity.getText().toString();
byte[] image=custimage;
Customerprofile profile = new Customerprofile();
profile.setName(name);
profile.setAddress(address);
profile.setPincode(pincode);
profile.setCity(city);
profile.setImage(image);
insertcust(profile);
}
private void insertcust(Customerprofile profile) {
// TODO Auto-generated method stub
DatabaseHelper mydbhelper = new DatabaseHelper(Myimage.this);
SQLiteDatabase db = mydbhelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DatabaseHelper.KEY_NAME, profile.getName());
values.put(DatabaseHelper.KEY_ADDRESS, profile.getAddress());
values.put(DatabaseHelper.KEY_PINCODE, profile.getPincode());
values.put(DatabaseHelper.KEY_CITY, profile.getCity());
values.put(DatabaseHelper.KEY_IMAGE, profile.getImage());
long adcid = db.insert(DatabaseHelper.DATABASE_TABLE, null,
values);
db.close();
}
});
}
私のImageView
画像をデータベースに保存するための解決策を教えてください。