android 如何获取保存的图片的地址 并存到数据库中

android 如何获取保存的图片的地址 并存到数据库中,第1张

安卓中如何获取保存的图片uri 并保存到sqlite数据库中

有如下两种方法,仅供参考

方法一:Java代码

public void saveIcon(Bitmap icon) {

if (icon == null) {

return

}

// 最终图标要保存到浏览器的内部数据库中,系统程序均保存为SQLite格式,Browser也不例外,因为图片是二进制的所以使用字节数组存储数据库的

// BLOB类型

final ByteArrayOutputStream os = new ByteArrayOutputStream()

// 将Bitmap压缩成PNG编码,质量为100%存储

icon.compress(Bitmap.CompressFormat.PNG, 100, os)

// 构造SQLite的Content对象,这里也可以使用

raw ContentValues values = new ContentValues()

// 写入数据库的

Browser.BookmarkColumns.TOUCH_ICON字段 values.put(Browser.BookmarkColumns.TOUCH_ICON, os.toByteArray())

DBUtil.update(....)

//调用更新或者插入到数据库的方法

}

}

方法二:如果数据表入口时一个content:URIJava代码

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)

}

原文请看http://www.bafenbaosoft.com/post/48.html

存储图片是在SdCard下的,不要放在数据库里面。否则用户在设置里找到你的应用--》"清除数据"你的图片岂不是全部丢掉了.

所以开发时图片一般在内存中或者在Sdcard中

无论图片在哪都可以让适配器去连接你的图片与UI显示的。要理解 View -Adapter -source 三者之间的关系对你有莫大的好处.

仅仅伸手要代码,无任何好处,下次你还不会懂

一般数据库中是不保存图片的,保存的是图片存放路径,图片放到文件夹中,如果放到数据库中数据库会很大,影响读取速度。

如果想放就把字段定义为如:`img` longblob;

然后就可以读取文件流 存储到数据库中了就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9884862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存