這篇文章將為大家詳細(xì)講解有關(guān)如何利用Bitmap為中介儲(chǔ)存圖片到數(shù)據(jù)庫中,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供樺南網(wǎng)站建設(shè)、樺南做網(wǎng)站、樺南網(wǎng)站設(shè)計(jì)、樺南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、樺南企業(yè)網(wǎng)站模板建站服務(wù),10年樺南做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
利用Bitmap及其相關(guān)的工具類即可實(shí)現(xiàn)圖片的存儲(chǔ)以及顯示。
主要用到的工具類:
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Base64; import java.io.ByteArrayOutputStream; /** * Created by cartoon on 2017/12/9. */ public class StringAndBitmap { //圖片與String之間的轉(zhuǎn)換,便于將圖片存儲(chǔ)在數(shù)據(jù)庫中 private Bitmap bitmap; private String string; public Bitmap stringToBitmap(String string){ //數(shù)據(jù)庫中的String類型轉(zhuǎn)換成Bitmap if(string!=null){ byte[] bytes= Base64.decode(string,Base64.DEFAULT); bitmap= BitmapFactory.decodeByteArray(bytes,0,bytes.length); return bitmap; } else { return null; } } public String bitmapToString(Bitmap bitmap){ //用戶在活動(dòng)中上傳的圖片轉(zhuǎn)換成String進(jìn)行存儲(chǔ) if(bitmap!=null){ ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] bytes = stream.toByteArray();// 轉(zhuǎn)為byte數(shù)組 string=Base64.encodeToString(bytes,Base64.DEFAULT); return string; } else{ return ""; } } }
下面已經(jīng)獲取到數(shù)據(jù)庫中已經(jīng)存儲(chǔ)了的圖片的String語句string,只需要在需要顯示圖片的組件中調(diào)用關(guān)于顯示Bitmap的方法即可。
imageView.setImageBitmap(stringAndBitmap.stringToBitmap(string); //這里的imageView為頁面組件綁定的ID,string為從數(shù)據(jù)庫獲取到圖片的string形態(tài)
而存儲(chǔ)用戶上傳的圖片則需要這樣即可。
bitmap=((BitmapDrawable)imageView.getDrawable()).getBitmap(); string=stringAndBitmap.bitmapToString(bitmap);
經(jīng)過一些數(shù)據(jù)庫的操作,即可以把用戶上傳的圖片存入到數(shù)據(jù)庫中。
因?yàn)閿?shù)據(jù)庫部分不是我負(fù)責(zé)的,所以我的建議是數(shù)據(jù)庫中的類型選擇BLOB(MySQL),因?yàn)橐呀?jīng)實(shí)現(xiàn)過是可行的。
關(guān)于“如何利用Bitmap為中介儲(chǔ)存圖片到數(shù)據(jù)庫中”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。