Android 如何在Sqlite数据库中插入图像?
在这里,我想在数据库中发送我的图像。。但是我不能给imgPro赋值。放。。请帮帮我Android 如何在Sqlite数据库中插入图像?,android,android-activity,Android,Android Activity,在这里,我想在数据库中发送我的图像。。但是我不能给imgPro赋值。放。。请帮帮我 else if (requestCode == 2) { Uri selectedImage = data.getData(); String[] filePath = { MediaStore.Images.Media.DATA }; Cursor c = getContentResolver().query(selectedImage,
else if (requestCode == 2) {
Uri selectedImage = data.getData();
String[] filePath = { MediaStore.Images.Media.DATA };
Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null);
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePath[0]);
String picturePath = c.getString(columnIndex);
c.close();
Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
imgPro.setImageBitmap(thumbnail);
}
你可以像下面这样做。
public class ImageConverter {
public static String imageToStringConverter(Bitmap image){
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
String imageToString = Base64.encodeToString(byteArray, Base64.NO_WRAP);
return imageToString;
}
public static Bitmap stringToimageConverter(String imageString){
byte[] stringTobyte = Base64.decode(imageString, Base64.NO_WRAP);
Bitmap bmp = BitmapFactory.decodeByteArray(stringTobyte, 0, stringTobyte.length);
return bmp;
}
}
您将调用这两个函数将图像转换为字符串,然后保存到数据库中。如下所示String statusImage = ImageConverter.imageToStringConverter(selectedImage);
selectedImage
是您从文件中选择的位图。如果您想显示图像,请再次将字符串转换回图像。为什么是Base64 当您有一些二进制数据要通过网络传送时, 一般来说,您不会通过将位和字节流式传输来实现这一点 导线以原始格式传输。为什么?因为有些媒体是为 流式文本。你永远不知道——有些协议可能会解释你的 二进制数据作为控制字符(如调制解调器)或二进制数据 可能会搞砸,因为基本协议可能会认为 您已经输入了一个特殊的字符组合(例如FTP) 翻译行尾) 为了解决这个问题,人们把二进制数据编码成字符。 Base64是这些类型的编码之一。为什么是64岁?因为你可以 通常依赖于在许多应用程序中存在相同的64个字符 字符集,并且您可以合理地确信您的数据 最终会在电线的另一边完好无损
从映像中获取字节数组。然后将其转换为字符串。然后将这些数据添加到您的数据库中。您能告诉我如何在上面的代码中执行此操作吗。。请我对android非常陌生…查看此链接,我已经更新了我的答案。请检查它。如果它有用,请接受它,以便其他人可以从这个答案中获得帮助。请给我简单的示例frnds。。我已经更新了,伙计。但我不明白你为什么把打扰你当作一件复杂的事情来处理,很抱歉,但是请修改我的代码。。我看到我的图片id显示在ImageView上。但m未能发送到数据库。。如果你能做到这一点,请帮助我