我想保存 ImageView (通过拍照生成)并将其保存在Android上的mysqlite中。这是我的代码,我有一个对话框,要求输入名称和图片。我希望能够将它们保存在android的数据库中。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAM_REQUEST) {
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
maquinafoto.setImageBitmap(bitmap);
//Convert bitmap into byte
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
bArray = bos.toByteArray();
}
}
public void showDialog() {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog_maquinas_activity);
nomemaquina = (EditText) dialog.findViewById(R.id.nomeMaquina);
maquinafoto = (ImageView) dialog.findViewById(R.id.imageView1);
Button dialogButton = (Button) dialog.findViewById(R.id.submeterNovaMaquina);
//set click listener na imagem
maquinafoto.setOnClickListener(new TakePhotoClicker());
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
String nomemaquinaString = nomemaquina.getText().toString();
//HERE I PUT THE TEXT AND THE IMAGE INTO THE DATABASE
bd.addMaquina(nomemaquinaString, bArray);
Toast.makeText(getApplicationContext(), "Máquina adicionada ", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
dialog.show();
}
这是我的数据库代码。我的图像是CREATE TABLE语句中的BLOB。
public void addMaquina(String name, byte[] image) throws SQLiteException {
ContentValues values = new ContentValues();
values.put(imagemMaquina, image);
values.put(nomeMaquina, name);
this.getWritableDatabase().insert(tableMaquinas,null,values);
}