最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)生成二維碼并保存到相冊(cè)

 更新時(shí)間:2022年04月13日 08:16:07   作者:bfw2015  
這篇文章主要介紹了如何利用Android實(shí)現(xiàn)二維碼的生成,并且保存到本地相冊(cè)。文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編學(xué)習(xí)一下

效果圖如下

保存的圖片效果是:

保存到本地的,是整個(gè)視圖,不只是單單的二維碼的圖片,

在了解的一番過(guò)程之后,我知道了,

1.首先要去獲取保存圖片的寫入權(quán)限;(使用 https://github.com/getActivity/XXPermissions

2. 保存指定view的bitmap (這一步,)

3.保存到相冊(cè)

直接上代碼:

private val mBitmapUrl = "wwwww://WL3687211525992373----"

private lateinit var mBitmap: Bitmap

使用的使用的是 https://github.com/bingoogolapple/BGAQRCode-Android  這個(gè)里面的類 去生成二維碼內(nèi)容

同時(shí),這個(gè)地方,是耗時(shí)操作,就使用了一下kotli的協(xié)程處理耗時(shí)操作了

lifecycleScope.launch {
val qrcodeBitmap = QRCodeEncoder.syncEncodeQRCode(mBitmapUrl, SizeUtils.dp2px(200f))
mBitmap = qrcodeBitmap
mDatabind.imageViewScanPay.load(qrcodeBitmap)
}

3. 點(diǎn)擊下載指定視圖內(nèi)容view到圖庫(kù)

mDatabind.textViewDownloadPicture.setOnClickListener {
//先判斷存儲(chǔ)權(quán)限是否授權(quán)
if (!XXPermissions.isGranted(
this@RechargeQrCodeActivity,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
)
    ) {
XXPermissions.with(this@RechargeQrCodeActivity)
.permission(Permission.WRITE_EXTERNAL_STORAGE)
.request { permissions, all ->
if (all) {
// 保存圖片
saveViewToImg(mDatabind.viewTop,this@RechargeQrCodeActivity)
} else {
ToastUtils.showShort("保存權(quán)限獲取失敗!")
}
}

} else {
// 保存圖片
saveViewToImg(mDatabind.viewTop,this@RechargeQrCodeActivity)
}

}
/**
 * 把view保存成圖片
*/

private fun  saveViewToImg(mView:View,mContext:Context){
// 獲取圖片的某布局
mView.isDrawingCacheEnabled = true
mView.buildDrawingCache()
lifecycleScope.launch {
// 獲取圖片
val drawingCache = mView.drawingCache
saveImg(drawingCache)
// 保存事后釋放資源
mView.isDrawingCacheEnabled = false
mView.destroyDrawingCache()
}


}
/**
 * 保存圖片到本地
*/
private fun saveImg(bitmap: Bitmap) {
val fileName = "qr_" + System.currentTimeMillis() + ".png"
val save2Album = ImageUtils.save2Album(bitmap, fileName, Bitmap.CompressFormat.PNG, false)
if (save2Album != null) {
ToastUtils.showShort("保存成功")
} else {
ToastUtils.showShort("保存失敗")
}
}

在保存圖片這里,這里用到了一個(gè)庫(kù): implementation 'com.blankj:utilcodex:1.31.0'   ImageUtls.sava2Album 進(jìn)行圖片的保存;

特別注意:在保存整個(gè)白色視圖view,做完圖片進(jìn)行保存的時(shí)候,我原來(lái)的視圖是直接用約束布局進(jìn)行寫的,視圖都是平級(jí)關(guān)系;

這樣就會(huì)導(dǎo)致,視圖,只是保存了白色的view背景色視圖,view上面的內(nèi)容都是沒(méi)有了,

后來(lái),通過(guò)探索,知道了,這個(gè)地方是使用包裹內(nèi)容的視圖的,所以就在里面首先用了一層cardView , 再到里面用了一層,線性布局,這樣就是有層級(jí)關(guān)系了,

視圖就正常顯示; 

原先錯(cuò)誤的視圖:--- 也不能說(shuō)是錯(cuò)誤,只是不適合,這里的

后面修改后的視圖關(guān)系

完成整個(gè)流程;

參考文章

以上就是Android實(shí)現(xiàn)生成二維碼并保存到相冊(cè)的詳細(xì)內(nèi)容,更多關(guān)于Android生成二維碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用Android封裝一個(gè)有趣的Loading組件

    利用Android封裝一個(gè)有趣的Loading組件

    這篇文章我們將利用Android封裝一個(gè)可以自定義配置前景色和背景色的Loading組件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08
  • Android 如何在私有空間創(chuàng)建文件

    Android 如何在私有空間創(chuàng)建文件

    在Android應(yīng)用程序中,我們經(jīng)常需要在私有空間中創(chuàng)建文件來(lái)存儲(chǔ)應(yīng)用數(shù)據(jù),例如用戶配置文件、日志文件等,本文將介紹如何在Android應(yīng)用中使用Java代碼創(chuàng)建文件并將其保存在私有空間中,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析

    Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析

    這篇文章主要介紹了Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析,較為詳細(xì)的分析了Android應(yīng)用程序模型中關(guān)于任務(wù)、進(jìn)程、線程的相關(guān)概念及注意事項(xiàng),需要的朋友可以參考下
    2016-01-01
  • Android 操作系統(tǒng)獲取Root權(quán)限 原理詳細(xì)解析

    Android 操作系統(tǒng)獲取Root權(quán)限 原理詳細(xì)解析

    許多機(jī)友新購(gòu)來(lái)的Android機(jī)器沒(méi)有破解過(guò)Root權(quán)限,無(wú)法使用一些需要高權(quán)限的軟件,以及進(jìn)行一些高權(quán)限的操作,其實(shí)破解手機(jī)Root權(quán)限是比較簡(jiǎn)單及安全的,破解Root權(quán)限的原理就是在手機(jī)的/system/bin/或/system/xbin/目錄下放置一個(gè)可執(zhí)行文件“su”
    2013-10-10
  • Android中DialogFragment自定義背景與寬高的方法

    Android中DialogFragment自定義背景與寬高的方法

    DialogFragment 彈出框默認(rèn)是在屏幕的中央,左右還有留白,那么如何自定義背景和寬高呢?下面這篇文章就來(lái)給大家介紹了關(guān)于Android中DialogFragment自定義背景與寬高的方法,需要的朋友可以參考下。
    2017-08-08
  • Android實(shí)現(xiàn)折線圖小工具

    Android實(shí)現(xiàn)折線圖小工具

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)折線圖小工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android在view.requestFocus(0)返回false的解決辦法

    Android在view.requestFocus(0)返回false的解決辦法

    這篇文章主要介紹了Android在view.requestFocus(0)返回false的解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2016-08-08
  • Android自定義View實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖示例代碼

    Android自定義View實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖示例代碼

    這篇文章主要給大家介紹了關(guān)于Android自定義View如何實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Flutter禁止手機(jī)橫屏的簡(jiǎn)單實(shí)現(xiàn)方法

    Flutter禁止手機(jī)橫屏的簡(jiǎn)單實(shí)現(xiàn)方法

    app默認(rèn)是可以橫屏的,如果需要禁止橫屏話可以參考這篇文章,本文主要給大家介紹了關(guān)于Flutter禁止手機(jī)橫屏的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下
    2021-07-07
  • Android使用WindowManager構(gòu)造懸浮view

    Android使用WindowManager構(gòu)造懸浮view

    這篇文章主要為大家詳細(xì)介紹了Android使用WindowManager構(gòu)造懸浮view的具體方法,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評(píng)論

张家港市| 贵德县| 城固县| 阿拉尔市| 平江县| 定日县| 东辽县| 东丽区| 页游| 铜山县| 溧水县| 通山县| 琼中| 禹州市| 工布江达县| 西乌珠穆沁旗| 鸡西市| 连云港市| 肥乡县| 江川县| 乌审旗| 海南省| 泰顺县| 浦县| 铜梁县| 芦山县| 都兰县| 武强县| 芷江| 监利县| 潼南县| 泗洪县| 枞阳县| 菏泽市| 湖北省| 苍溪县| 大竹县| 白银市| 灵丘县| 安平县| 赫章县|