国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android利用LitePal操作數據庫存取圖片

2019-12-12 02:20:20
字體:
來源:轉載
供稿:網友

Android數據庫中存取圖片通常使用兩種方式,一種是保存圖片所在路徑,二是將圖片以二進制的形式存儲(sqlite3支持BLOB數據類型)。對于兩種方法的使用,好像第二種方法不如第一種方法更受程序員歡迎,他們認為,在很多數據庫語言里,處理大字段都是不容易的,像圖片這樣的文件放在數據庫里會有問題:對數據庫的讀寫速度永遠趕不上文件系統的處理速度,使數據庫變得巨大;但也有很多人認為像圖片這樣的數據存放在數據庫中也有好處:易于備份,且備份速度絕對比備份文件快,比較容易數據遷移等等。其實這兩種方法都有優缺點,具體使用哪種方法要視情況而定。個人傾向于使用數據庫存取圖片,因為個人認為存到數據庫里的數據不會因外部數據的變化而丟失改變,比如你拍照獲得一張圖片,如果是將路徑存到數據庫,當這張照片被刪除之后,下次讀取數據庫就得不到想要的結果了。接下來詳細介紹數據庫存取圖片的方法:

1、把圖片轉換為字節

private byte[]img(Bitmap bitmap){     ByteArrayOutputStream baos = new ByteArrayOutputStream();     bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);     return baos.toByteArray();   } 

2、把圖片存儲到數據庫

假設獲取的圖片為bitmap,數據庫有一張User表,存儲的屬性為byte[]headshot

public class User extends DataSupport {  private byte[] headshot;//頭像  public User(){ super(); }  public User(byte[]headshot){ super(); this.headshot=headshot; } public byte[] getHeadshot() {     return headshot;   }    public void setHeadshot(byte[] headshot) {     this.headshot = headshot;   } } 

對圖片進行保存

//獲取到圖片 Bitmap headShot=BitmapFactory.decodeFile(imagePath); //把圖片轉換字節流 byte[]images=img(headShot); //找到用戶 User users=DataSupport.findFirst(User.class); //保存 users.setHeadshot(images); users.save(); 

4、獲取圖片

User mUser=DataSupport.findFrist(User.class); byte[]images=mUser.getHeadshot(); Bitmap bitmap=BitmapFactory.decodeByteArray(images,0,images.length); 

好了,到此完成對數據庫存取圖片。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涞水县| 淮南市| 印江| 祥云县| 拉萨市| 宁武县| 竹北市| 宝坻区| 竹山县| 增城市| 孙吴县| 卓资县| 石景山区| 郯城县| 于都县| 罗江县| 区。| 金昌市| 吉隆县| 安岳县| 宣汉县| 呈贡县| 南华县| 五指山市| 宜兰市| 龙岩市| 轮台县| 苍山县| 天峨县| 洞头县| 县级市| 高平市| 大埔县| 白水县| 武川县| 汽车| 施秉县| 海门市| 元阳县| 枞阳县| 贺州市|