国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

需求

Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,需要實(shí)現(xiàn)本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)。

實(shí)現(xiàn)的效果如圖

Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn),Flutter,flutter,頭像,image_picker,相冊(cè),相機(jī),app,Android
Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn),Flutter,flutter,頭像,image_picker,相冊(cè),相機(jī),app,Android

代碼實(shí)現(xiàn)

InkWell(
                        onTap: () {
                          showDialog(
                            context: context,
                            builder: (BuildContext context) {
                              return AlertDialog(
                                title: Text('選擇頭像'),
                                actions: [
                                  TextButton(
                                    child: Text('從相冊(cè)選擇'),
                                    onPressed: () async {
                                      Navigator.of(context).pop();
                                      final pickedImage = await ImagePicker().pickImage(source: ImageSource.gallery);
                                      if (pickedImage != null) {
                                        _updateSelectedImage(File(pickedImage.path));
                                        _saveImagePath(pickedImage.path);
                                      }
                                    },
                                  ),
                                  TextButton(
                                    child: Text('拍照'),
                                    onPressed: () async {
                                      Navigator.of(context).pop();
                                      final pickedImage = await ImagePicker().pickImage(source: ImageSource.camera);
                                      if (pickedImage != null) {
                                        _updateSelectedImage(File(pickedImage.path));
                                        _saveImagePath(pickedImage.path);
                                      }
                                    },
                                  ),
                                ],
                              );
                            },
                          );
                        },

代碼分析

用InkWell包住了我們的頭像,這樣來(lái)監(jiān)聽(tīng)點(diǎn)擊頭像的事件

InkWell 是一個(gè)非常常用且功能強(qiáng)大的小部件。InkWell 可以用于為Flutter應(yīng)用添加水波紋效果,以及捕獲和處理用戶(hù)的點(diǎn)擊手勢(shì)。

InkWell 封裝了一個(gè)矩形區(qū)域,當(dāng)用戶(hù)點(diǎn)擊該區(qū)域時(shí),它會(huì)在用戶(hù)點(diǎn)擊的位置上產(chǎn)生一個(gè)美觀的水波紋效果,并且可以響應(yīng)這次點(diǎn)擊事件。水波紋效果為用戶(hù)提供了視覺(jué)反饋,讓用戶(hù)感知到他們的點(diǎn)擊操作已被捕獲。

用InkWell包住了我們的頭像,這樣來(lái)監(jiān)聽(tīng)點(diǎn)擊頭像的事件。

用showDialog彈出提示框讓用戶(hù)選擇是從相冊(cè)里選擇頭像還是使用相機(jī)來(lái)拍照

showDialog 是Flutter中用于顯示對(duì)話(huà)框的一個(gè)函數(shù)。對(duì)話(huà)框是一種常見(jiàn)的用戶(hù)界面元素,用于向用戶(hù)顯示重要信息、警告、確認(rèn)選擇或接收用戶(hù)輸入。

showDialog 函數(shù)的定義如下:

Future<T?> showDialog<T>({
  required BuildContext context,
  bool barrierDismissible = true,
  required WidgetBuilder builder,
})

參數(shù)解釋?zhuān)?br> context:BuildContext,通常為當(dāng)前頁(yè)面的上下文。
barrierDismissible:一個(gè)布爾值,表示是否允許通過(guò)點(diǎn)擊對(duì)話(huà)框外部的半透明背景來(lái)關(guān)閉對(duì)話(huà)框。默認(rèn)為 true,表示可以關(guān)閉。
builder:WidgetBuilder 回調(diào)函數(shù),用于構(gòu)建對(duì)話(huà)框的內(nèi)容。

用image_picker實(shí)現(xiàn)從設(shè)備的相冊(cè)或相機(jī)中選擇圖片或拍照

image_picker 是 Flutter 中的一個(gè)插件,它提供了一個(gè)簡(jiǎn)單且易于使用的方法,用于從設(shè)備的相冊(cè)或相機(jī)中選擇圖片或拍照。

使用 image_picker 插件,您可以輕松地實(shí)現(xiàn)以下功能:

從相冊(cè)中選擇圖片:允許用戶(hù)從設(shè)備的相冊(cè)中選擇一張圖片。
拍照:允許用戶(hù)使用設(shè)備的相機(jī)拍攝一張照片。

其他插件

Flutter提供了許多插件和包,可以幫助你在應(yīng)用程序中操作相機(jī)和相冊(cè)。以下是一些常用的Flutter插件,用于處理相機(jī)和相冊(cè)功能:

camera

camera插件是一個(gè)廣泛使用的Flutter插件,它提供了用于訪問(wèn)和控制設(shè)備相機(jī)的API。你可以使用camera插件來(lái)捕獲照片和錄制視頻。

image_picker

image_picker插件允許用戶(hù)從設(shè)備的相冊(cè)中選擇圖片,也可以使用相機(jī)拍攝新照片。這是一個(gè)非常方便的插件,用于選擇和處理圖片。

flutter_image_compress:

flutter_image_compress這個(gè)插件可以幫助你壓縮和處理圖片,特別是在你從相機(jī)或相冊(cè)獲取圖片后,你可能需要將其進(jìn)行壓縮以減小文件大小。

path_provider

path_provider插件用于獲取設(shè)備上特定目錄的路徑,這對(duì)于存儲(chǔ)從相機(jī)或相冊(cè)選擇的圖片文件以及其他數(shù)據(jù)非常有用。

image_cropper

image_cropper插件用于裁剪圖片。如果你需要讓用戶(hù)選擇圖片后進(jìn)行裁剪,這個(gè)插件是一個(gè)很好的選擇。

這些插件在Flutter社區(qū)中非常受歡迎,并提供了豐富的功能,以便于在你的Flutter應(yīng)用程序中操作相機(jī)和相冊(cè)。你可以通過(guò)Flutter官方的包管理工具pub來(lái)安裝和使用這些插件。要了解更多詳情和示例,請(qǐng)查閱各個(gè)插件的文檔和示例代碼。請(qǐng)注意,插件的版本和功能可能會(huì)隨時(shí)間而變化,因此請(qǐng)查看它們的GitHub頁(yè)面或Flutter包管理器以獲取最新信息。

掌握以上插件對(duì)Flutter操作相機(jī)和相冊(cè)的操作基本就沒(méi)有問(wèn)題了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-605479.html

到了這里,關(guān)于Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 小米手機(jī)通過(guò)相冊(cè)修改頭像時(shí)報(bào)java.lang.SecurityException

    問(wèn)題解決辦法記錄(好記性不如爛筆頭~電子筆頭,嘿嘿) Caused by: java.lang.SecurityException: UID 10764 does not have permission to content://com.miui.gallery.open/raw/%2Fstorage%2Femulated%2F0%2FPictures%2Fweibo%2Fimg-164873012856083ac9bb75ce06902b5f0230926f11c6be692a0dd64ce144bef6d3d374704c013.jpg [user 0] 小米手機(jī)上通過(guò)相冊(cè)

    2024年02月10日
    瀏覽(18)
  • Android Studio實(shí)現(xiàn)讀取本地相冊(cè)文件并展示

    Android Studio實(shí)現(xiàn)讀取本地相冊(cè)文件并展示

    原文鏈接 效果 代碼 activity_main.xml 需要有一個(gè)按鈕和image來(lái)展示圖片 MainActivity

    2024年02月12日
    瀏覽(19)
  • Flutter 圖片選取及裁剪

    在開(kāi)發(fā)項(xiàng)目里修改用戶(hù)頭像的功能,涉及到圖片選取及裁剪,基本實(shí)現(xiàn)步驟如下: 1、pubspec.yaml 添加 image_picker: ^1.0.1? image_cropper: ^4.0.1: 2、AndroidManifest.xml 添加: 3、封裝工具類(lèi)?image_picker_helper.dart ,代碼如下: 4、使用示例:

    2024年02月15日
    瀏覽(20)
  • Android 拍照以及相冊(cè)中選擇(適配高版本)————上傳頭像并裁剪(一)

    Android 拍照以及相冊(cè)中選擇(適配高版本)————上傳頭像并裁剪(一)

    ???????在項(xiàng)目研發(fā)中,相信大家都遇到過(guò)給用戶(hù)增加 頭像照片 的需求。 ???????隨著 手機(jī)版本的不斷更新 ,android 8、android 9、android 10、android 12、android 13、鴻蒙系統(tǒng)等等;遇到這個(gè)功能需求,大家肯定會(huì)想, “這還不好寫(xiě)? 之前就已經(jīng)寫(xiě)過(guò)了?!?把老項(xiàng)目跑了一遍

    2024年02月01日
    瀏覽(16)
  • Android相冊(cè)選擇圖片、相機(jī)拍照上傳功能實(shí)現(xiàn)(上)

    Android相冊(cè)選擇圖片、相機(jī)拍照上傳功能實(shí)現(xiàn)(上)

    先上效果圖 下面就來(lái)說(shuō)一下相冊(cè)選擇圖片和相機(jī)拍照的實(shí)現(xiàn) 相冊(cè)選擇圖片很簡(jiǎn)單,只需要通過(guò) Intent 設(shè)置拉起就可以了 Intent 拉起相冊(cè) /** 打開(kāi)相冊(cè) @param type 打開(kāi)類(lèi)型區(qū)分碼(type是我用來(lái)區(qū)分回調(diào)的) / private void openGallery(int type) { Intent gallery = new Intent(Intent.ACTION_PICK); galler

    2024年04月16日
    瀏覽(27)
  • vue 使用高德地圖實(shí)現(xiàn)自定義選取起點(diǎn)和終點(diǎn)功能,支持搜索地址跳轉(zhuǎn)定位(保姆級(jí)教程)

    vue 使用高德地圖實(shí)現(xiàn)自定義選取起點(diǎn)和終點(diǎn)功能,支持搜索地址跳轉(zhuǎn)定位(保姆級(jí)教程)

    1. 起點(diǎn)終點(diǎn)選擇 ?2. 地址搜索 ? 1. 獲取高德地圖key 1.1? 訪問(wèn)高德地圖官網(wǎng)注冊(cè)完成后登錄,進(jìn)入控制臺(tái) ?1.2? 左側(cè) 應(yīng)用管理-我的應(yīng)用,點(diǎn)擊創(chuàng)建新應(yīng)用 1.3 點(diǎn)擊添加 ? 1.4 選擇 Web端(JS API)? 1.5 創(chuàng)建完成,得到key和安全密鑰 ? 2. 引入高德地圖npm包 提示:以下代碼全部在*.vu

    2024年02月04日
    瀏覽(19)
  • uniapp 實(shí)現(xiàn)生成海報(bào)并分享給微信好友和保存到本地相冊(cè)

    uniapp 實(shí)現(xiàn)生成海報(bào)并分享給微信好友和保存到本地相冊(cè)

    – 最近又遇到一個(gè)需求:用戶(hù)需要將小程序生成的二維碼海報(bào)分享給微信好友或者保存到本地,最后實(shí)現(xiàn)的效果如下: 這種網(wǎng)上隨便找一下就有了,樓主采用的是tki-qrcode 生成二維碼組件,具體的鏈接如下: 鏈接: https://blog.csdn.net/qq_45829293/article/details/123169952 因?yàn)榭紤]到到時(shí)

    2023年04月09日
    瀏覽(98)
  • Vue3 - 詳細(xì)實(shí)現(xiàn)下載從服務(wù)端返回的文件流 Blob 對(duì)象教程,前端下載后端接口返回的文件流并自動(dòng)保存到本地,支持任何格式的文件下載(從后端拿到二進(jìn)制文件流 Blob 對(duì)象,前端實(shí)現(xiàn)點(diǎn)擊下載功能)

    Vue3 - 詳細(xì)實(shí)現(xiàn)下載從服務(wù)端返回的文件流 Blob 對(duì)象教程,前端下載后端接口返回的文件流并自動(dòng)保存到本地,支持任何格式的文件下載(從后端拿到二進(jìn)制文件流 Blob 對(duì)象,前端實(shí)現(xiàn)點(diǎn)擊下載功能)

    調(diào)用服務(wù)端(后端)接口拿到文件流,通過(guò)前端下載并保存到本地。 本文 實(shí)現(xiàn)了在 vue3 項(xiàng)目中,通過(guò)后端接口返回的二進(jìn)制文件流 Blob 對(duì)象,在前端進(jìn)行點(diǎn)擊下載并保存到用戶(hù)本地,任何格式的文件都可以輕松下載, 保證您直接復(fù)制代碼,改個(gè)請(qǐng)求地址就可以使用了, 如下

    2024年02月04日
    瀏覽(174)
  • 緩存更新的四種策略及選取建議

    緩存更新的四種策略及選取建議

    緩存更新是指在數(shù)據(jù)發(fā)生變化時(shí),保持緩存和數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性的問(wèn)題。如果緩存和數(shù)據(jù)庫(kù)的數(shù)據(jù)不一致,會(huì)導(dǎo)致用戶(hù)看到過(guò)期或者錯(cuò)誤的數(shù)據(jù),影響業(yè)務(wù)邏輯和用戶(hù)體驗(yàn)。 為了實(shí)現(xiàn)緩存更新,我們可以采用以下四種方式: Cache Aside策略 :應(yīng)用程序直接 與數(shù)據(jù)庫(kù)和緩存交

    2024年02月05日
    瀏覽(12)
  • uniapp選取本地資源(圖片,視頻,文件)

    從本地相冊(cè)選擇圖片或使用相機(jī)拍照。 App端如需要更豐富的相機(jī)拍照API(如直接調(diào)用前置攝像頭),參考plus.camera OBJECT 參數(shù)說(shuō)明 參數(shù)名 類(lèi)型 必填 說(shuō)明 平臺(tái)差異說(shuō)明 count Number 否 最多可以選擇的圖片張數(shù),默認(rèn)9 見(jiàn)下方說(shuō)明 sizeType ArrayString 否 original 原圖,compressed 壓縮圖,

    2024年02月11日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包