如何在数据库中使用 ActiveAndroid 存储图像
How to store image using ActiveAndroid in DB
This My My Activity class 使用 activeandoid 存储值的代码...我已经在下面的代码中将图像文件转换为字节...但它没有存储在 Db 中...全部其他值已存储
case R.id.notVerified:
ActiveAndroid.beginTransaction();
try {
c.setName(Ename.getText().toString());
c.setEmail(Eemail.getText().toString());
c.setMemo(Eemail.getText().toString());
c.setPhone(Ephone.getText().toString());
c.setPhoto("user.png");
String s = new String(byteArray);
Toast.makeText(getActivity(), c.getImage().toString() ,Toast.LENGTH_LONG).show();
c.setImage(byteArray);
c.setTitle(ETitle.getText().toString());
c.save();
ActiveAndroid.setTransactionSuccessful();
Toast.makeText(getActivity(), "Contact Added",Toast.LENGTH_LONG).show();
} finally {
ActiveAndroid.endTransaction();
}
break;
这是为了将图像转换为字节
if (requestCode == CAMERA_REQUEST) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getActivity().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Eimgname.setText(filePath);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
c.setImage(byteArray);
}
从性能角度来看,创建一个列作为字符串并从磁盘或网络获取图像更有用。并且 AA 支持保存字节数组,也许你的实体有问题 class。
并且不要忘记定义自定义 type serializer 可以帮助你。
ActiveAndroid
还使用 SQLiteUtils class
提供自定义 SQL queries
。执行 SQL 有两种方法,即“execSql”和“rawQuery”。第一个是为没有结果 queries
提供的,而第二个是为 queries
提供的 return 结果。在列表中没有。 12 您可以找到 methods
.
的使用示例
SQLiteUtils.execSql("DELETE FROM Prelegents where id = ?", new String[]{"1"});
List prelegents =
SQLiteUtils.rawQuery(PrelegentDAO.class, "SELECT * from Prelegents where id = ?", new String[]{"1"});
This My My Activity class 使用 activeandoid 存储值的代码...我已经在下面的代码中将图像文件转换为字节...但它没有存储在 Db 中...全部其他值已存储
case R.id.notVerified:
ActiveAndroid.beginTransaction();
try {
c.setName(Ename.getText().toString());
c.setEmail(Eemail.getText().toString());
c.setMemo(Eemail.getText().toString());
c.setPhone(Ephone.getText().toString());
c.setPhoto("user.png");
String s = new String(byteArray);
Toast.makeText(getActivity(), c.getImage().toString() ,Toast.LENGTH_LONG).show();
c.setImage(byteArray);
c.setTitle(ETitle.getText().toString());
c.save();
ActiveAndroid.setTransactionSuccessful();
Toast.makeText(getActivity(), "Contact Added",Toast.LENGTH_LONG).show();
} finally {
ActiveAndroid.endTransaction();
}
break;
这是为了将图像转换为字节
if (requestCode == CAMERA_REQUEST) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getActivity().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Eimgname.setText(filePath);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
c.setImage(byteArray);
}
从性能角度来看,创建一个列作为字符串并从磁盘或网络获取图像更有用。并且 AA 支持保存字节数组,也许你的实体有问题 class。 并且不要忘记定义自定义 type serializer 可以帮助你。
ActiveAndroid
还使用 SQLiteUtils class
提供自定义 SQL queries
。执行 SQL 有两种方法,即“execSql”和“rawQuery”。第一个是为没有结果 queries
提供的,而第二个是为 queries
提供的 return 结果。在列表中没有。 12 您可以找到 methods
.
SQLiteUtils.execSql("DELETE FROM Prelegents where id = ?", new String[]{"1"});
List prelegents =
SQLiteUtils.rawQuery(PrelegentDAO.class, "SELECT * from Prelegents where id = ?", new String[]{"1"});