android 向数据库写入图片信息 读取图片信息

向数据库写入图片信息:
数据库中的字段设置为 binary类型
Bitmap bitmap = BitmapFactory.decodeFile(path);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
                bitmap.compress(CompressFormat.JPEG, 50, baos);
String sql = "insert into pic_info(pic_data, pic_name,pic_size,send_date,is_success) " +"values(?,?,?,?,?)";
                Object[] args = new Object[]{baos.toByteArray(), name, size, now, isSucess};
db.insert(sql, args);
读取数据库的图片信息:
                byte[] picData = cursor.getBlob(cursor.getColumnIndex("pic_data"));
                bitmap.setImageBitmap(BitmapFactory.decodeByteArray(picData, 0, picData.length));
 
方法二:如果数据表入口是一个content:URI
 
Java代码
import android.provider.MediaStore.Images.Media;
import android.content.ContentValues;
import java.io.OutputStream;
 
// Save the name and description of an image in a ContentValues map.
ContentValues values = new ContentValues(3);
values.put(Media.DISPLAY_NAME, “road_trip_1″);
values.put(Media.DESCRIPTION, “Day 1, trip to Los Angeles”);
values.put(Media.MIME_TYPE, “image/jpeg”);
 
// Add a new record without the bitmap, but with the values just set.
// insert() returns the URI of the new record.
Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
 
// Now get a handle to the file for that record, and save the data into it.
// Here, sourceBitmap is a Bitmap object representing the file to save to the database.
try {
OutputStream outStream = getContentResolver().openOutputStream(uri);
sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream);
outStream.close();
} catch (Exception e) {
Log.e(TAG, “exception while writing image”, e);
}

posted on 2012-12-10 20:58  Ivan_Chan  阅读(436)  评论(0编辑  收藏  举报

导航