當前位置:
首頁 >
Android调用系统拍照裁剪和选图功能
發布時間:2023/12/2
28
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Android调用系统拍照裁剪和选图功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近項目中用到修改用戶頭像的功能,基本上都是模板代碼,現在簡單記錄一下.
- 調用系統拍照
為了適配Android7.0以后的版本,需要在AndroidManifest配置一下(在后面相冊選圖也需要用到)
<application>... <providerandroid:name="android.support.v4.content.FileProvider"android:authorities="com.yaoli.testcamerademo.fileprovider"android:exported="false"android:grantUriPermissions="true"><meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> </application>其中的?file_paths是這樣的
?
- 調用系統相冊
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 2) // 打開相冊,這種方式可以打開圖片或圖庫或文件管理中的圖片
}
再來看下onActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {when (requestCode) {1 -> {//拍照if (resultCode == AppCompatActivity.RESULT_OK) {startPhoneCrop(imageUri!!)}}2 -> {//打開相冊// 判斷手機系統版本號if (Build.VERSION.SDK_INT >= 21) {// 4.4及以上系統使用這個方法處理圖片handleImageOnKitKat(data!!)} else {// 4.4以下系統使用這個方法處理圖片handleImageBeforeKitKat(data!!)}}START_CROP_IMAGE_REQUEST -> {
if (resultCode == Activity.RESULT_OK) {
var file = File(outputUri!!.path)
} }
其中涉及到一些系統裁剪相關的方法
- 調用系統裁剪
private fun getImagePath(uri: Uri, selection: String?): String {var path = ""// 通過Uri和selection來獲取真實的圖片路徑val cursor = contentResolver.query(uri, null, selection, null, null)if (cursor != null) {if (cursor.moveToFirst()) {path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)) } cursor.close() } return path } ?
裁剪之后的返回也在onActivityResult方法中.
?
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 2)轉載于:https://www.cnblogs.com/fuyaozhishang/p/9466258.html
總結
以上是生活随笔為你收集整理的Android调用系统拍照裁剪和选图功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 伊苏7难度选择(伊苏7太难了)
- 下一篇: 双飞燕鼠标快捷键(双飞燕鼠标按键)