Ton*_*ony -1 sqlite android uri image
我通过使用以下代码保存图像uri
public void insert (Uri image) throws SQLiteException {
SQLiteDatabase database = mdb.getWritableDatabase();
ContentValues cv = new ContentValues();
try {
InputStream iStream = getContentResolver().openInputStream(image);
byte[] inputData = com.example.tony.monthlyexpenses.Utils.getBytes(iStream);
cv.put(MyDatabaseHelper.KEY_IMAGE,inputData);
}catch(IOException ioe)
{
Log.e("A", "<saveImageInDB> Error : " + ioe.getLocalizedMessage());
}
database.insert(MyDatabaseHelper.TABLE_EXPENSES, null, cv);
database.close();
}
Run Code Online (Sandbox Code Playgroud)
实用程序
public static Bitmap getImage(byte[] image) {
return BitmapFactory.decodeByteArray(image, 0, image.length);
}
public static byte[] getBytes(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
return byteBuffer.toByteArray();
}
Run Code Online (Sandbox Code Playgroud)
现在,我想检索图像并显示为setImage Uri而不是setImage'Bitmap'。
byte[] bb = cursor.getBlob(cursor.getColumnIndex("ImageReceipt"));
imageView.setImageBitmap(Utils.getImage(bb));
Run Code Online (Sandbox Code Playgroud)
它取决于字节数组的内容。
假设您的字节数组是URI字符,则可以使用以下代码:
byte [] buf = <your byte array>;
String s = new String(buf, "UTF-8");
Uri uri = Uri.parse(s);
Run Code Online (Sandbox Code Playgroud)
但是在您的情况下,无法将图像字节数组转换为图像Uri,U可以保存您的图像Uri而不是存储位图。这样您就可以将其读取为图像Uri并减少存储空间。
| 归档时间: |
|
| 查看次数: |
5484 次 |
| 最近记录: |