Android调用相机与相册的方法1

简介: Android调用相机与相册的方法

操作流程

点击拍摄

点击头像(我这里使用的是ImageView控件),然后点击拍摄,去申请权限,允许则打开相机 拍摄 然后进去裁剪框 选取合适的位置合适的大小 点击√,即设置成功

效果图

点击相册选择

点击头像,点击相册选择,允许权限则进去图库,选择图片 截取图片,设置成功

效果图

拒绝权限的情况

点击禁止则无操作,勾选禁止后不再提示,则弹出自定义dialog提示框,点击取消即关闭dialog,点击去设置则进入应用设置页面

效果图

功能实现

项目配置

1.先在项目根目录的build.gradle的repositories添加:

allprojects {
     repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

【注意】切记不要跳过这一步,因为XUI目前只发布在jitpack平台上,跳过这一步会导致ERROR: Failed to resolve: com.github.xuexiangjys:XUI:x.x.x错误!!!

2.在build.gradle(:app)的dependencies添加:

  // 裁剪相关
    implementation 'com.github.yalantis:ucrop:2.2.6'
    // XUI dialog相关
    implementation 'com.github.xuexiangjys:XUI:1.1.9'
    implementation 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0'
    // 权限相关
    implementation 'com.yanzhenjie:permission:2.0.2'
    // 加载图片
    implementation 'com.github.bumptech.glide:glide:4.13.1'

3.添加提示dialog样式

如果使用弹出提示的XUI自定义dialog则需要在AndroidManifest.xml中application的主题添加样式

添加以下样式:

<style name="Theme.HeadPhotoTest" parent="XUITheme.Phone">

    <!-- 自定义自己的主题样式 -->

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textAllCaps">false</item>

</style>

然后Ctrl点进colors.xml添加以下属性:


#2196F3

#121C4C

#2196F3

4.添加底部dialog样式

如果需要使用底部弹出dialog则需要在AndroidManifest.xml在application的主题中添加以下样式代码:

  <!-- dialog样式 -->
    <style name="DialogTheme" parent="@android:style/Theme.Dialog">
        <!-- 边框 -->
        <item name="android:windowFrame">@null</item>
        <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 半透明 -->
        <item name="android:windowIsTranslucent">true</item>
        <!-- 无标题 -->
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@android:color/transparent</item>
        <!-- 背景透明 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 遮罩层 -->
        <item name="android:backgroundDimAmount">0.5</item>
    </style>
    
  <!-- dialog的动画 -->
    <style name="main_menu_animStyle">
        <item name="android:windowEnterAnimation">@drawable/dialog_in_anim</item>
        <item name="android:windowExitAnimation">@drawable/dialog_out_anim</item>
    </style>
底部dialog弹出动画(dialog_in_anim.xml)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:fromYDelta="1000"
        android:toXDelta="0"
        android:toYDelta="0" />
</set>
底部dialog关闭动画(dialog_out_anim.xml)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="1000" />
</set>

5.添加权限

AndroidManifest.xml中加入以下权限代码:

  <!-- 请求拍摄权限-->
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- 读写设备照片及文件-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

6.在AndroidManifest.xml中添加剪切activity活动

如果用到剪切功能需要添加,不用剪切功能则不需要添加

  <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

Android调用相机与相册的方法2:https://developer.aliyun.com/article/1473508

目录
相关文章
|
1天前
|
Java Android开发
Android12 双击power键启动相机源码解析
Android12 双击power键启动相机源码解析
25 0
|
1天前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
35 0
|
1天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
10 0
|
1天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
15 0
|
1天前
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
19 0
|
1天前
|
Android开发
Android中去掉ActionBar的几种方法
Android中去掉ActionBar的几种方法
12 0
|
1天前
|
安全 Java Shell
Android11以上 Audio音频调试方法
Android11以上 Audio音频调试方法
69 0
|
1天前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
29 1
|
Android开发 安全
Android官方开发文档Training系列课程中文版:调用相机之简单摄像
原文地址:http://android.xsoftlab.net/training/camera/videobasics.html 这节课解释了如何通过已有的相机应用拍摄视频。 假设你的程序含有摄像功能,但是它只是程序很小的一部分功能,你并不想在这么小的功能上花费很大的精力。
869 0
|
1天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。