像微信、QQ、微博等社交類的APP,通常都有設置頭像的功能,設置頭像通常有兩種方式:
1.讓用戶啓動手機的相機拍照,拍完照片後裁剪,然後作爲頭像。
2.讓用戶通過選擇本地相冊之類的圖片庫中已有的圖像,裁剪後作爲頭像。
遇到的難點:
1.版本大於7.0,圖片的路徑是必須被封裝了的,使用FileProvider內容提供器,將被封裝過的URI共享給外部,FileProvider中的getUriForFile()方法將File對象轉換成一個封裝過的Uri。
2.由於4.4以上,選取相冊中的圖片返回一個封裝後的Uri。
3.運行時權限
4.剪裁相片的代碼和上面使用意圖打開相機一樣,如果本機版本大於等於anroid7.0需要臨時授權Uri的訪問權限如下:
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
代碼方面就沒啥問題了,具體見 薦幣項目 SettingActivity.java