广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现用户头像更换操作
  • 863
分享到

Android实现用户头像更换操作

Android 2022-06-06 08:06:12 863人浏览 八月长安
摘要

你以为头像更换很容易?或许对于用户来讲,在微信上更换一个头像只是点击头像,选择拍照或相册,裁剪返回而已。但是对于程序员来说,要实现其实也挺吃力的(小火柴花了一个下午整理~_~)

你以为头像更换很容易?或许对于用户来讲,在微信上更换一个头像只是点击头像,选择拍照或相册,裁剪返回而已。但是对于程序员来说,要实现其实也挺吃力的(小火柴花了一个下午整理~_~)。

正如用户使用那样,代码的实现也是按照操作的顺序而逐步展开。如下图:

接下来主要来讲解一下代码:

1. 弹框选择相册或拍照

比较简单的方式就是直接使用AlertDialog弹出选项供用户进行选择


public static void showImagePickDialog(final Activity activity){
 String title = "选择获取图片方式";
 String[] items = new String[]{"拍照","相册"};
 new AlertDialog.Builder(activity)
  .setTitle(title)
  .setItems(items, new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
     dialog.dismiss();
     switch (which){
       case 0:
       //选择拍照
       pickImageFromCamera(activity);
       break;
       case 1:
       //选择相册
       pickImageFromAlbum(activity);
       break;
       default:
       break;
      }
     }
    }).show();
 }

2. 调用系统相机

在调用系统相机前,我们需要传入自定义路径的图片Uri,指定拍照的图片存放在这个Uri下,如果直接在返回时使用getData()获取的是压缩过的Bitmap数据


public static void pickImageFromCamera(final Activity activity){
 //获得指定路径的Uri
 imageUriFromCamera = getImageUri();
 Intent intent = new Intent();
 intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
 intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUriFromCamera);
 activity.startActivityForResult(intent,REQUEST_CODE_FROM_CAMERA);
}

3. 打开系统相册

直接调用系统相册,再对返回数据进行操作


public static void pickImageFromAlbum(final Activity activity){
  //隐式调用,可能出现多种选择
  Intent intent = new Intent();
  intent.setAction(Intent.ACTION_GET_CONTENT);
  intent.setType("image/*");
  activity.startActivityForResult(intent,REQUEST_CODE_FROM_ALBUM);
}

4. 对返回图片Uri进行裁剪工作

对于拍照返回,直接对返回图片进行裁剪即可;而对于选择相册返回,我们需要先将原图片复制到我们自定义的目录下(避免裁剪操作对原图片的质量产生影响),然后对复制的图片进行裁剪


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch (requestCode){
   case ImageUtils.REQUEST_CODE_FROM_ALBUM: {
    if (resultCode == RESULT_CANCELED) { //取消操作
     return;
    }
    Uri imageUri = data.getData();
    ImageUtils.copyImageUri(this,imageUri); //复制图片
    ImageUtils.cropImageUri(this, ImageUtils.getCurrentUri(), 200, 200); //裁剪图片
    break;
   }
   case ImageUtils.REQUEST_CODE_FROM_CAMERA: {
    if (resultCode == RESULT_CANCELED) { //取消操作
     ImageUtils.deleteImageUri(this, ImageUtils.getCurrentUri()); //删除Uri
    }
    ImageUtils.cropImageUri(this, ImageUtils.getCurrentUri(), 200, 200); //裁剪图片
    break;
   }
   case ImageUtils.REQUEST_CODE_CROP: {
    if (resultCode == RESULT_CANCELED) { //取消操作
     return;
    }
    Uri imageUri = ImageUtils.getCurrentUri();
    if (imageUri != null) {
     imageView.setImageURI(imageUri); //显示图片
    }
    break;
   }
   default:
    break;
  }
 }

以上只给了部分代码,需要完整代码的同学可以到GitHub上下载:
https://github.com/ZhouCP/PhotoDemo

您可能感兴趣的文章:Android实现本地上传图片并设置为圆形头像Android使用CircleImageView实现圆形头像的方法Android根据电话号码获得联系人头像实例代码Android实现从本地图库/相机拍照后裁剪图片并设置头像Android手机拍照或选取图库图片作为头像Android一行代码实现圆形头像Android实现调用系统图库与相机设置头像并保存在本地及服务器Android实现个人资料页面头像背景模糊显示包(状态栏)Android头像上传功能的实现代码(获取头像加剪切)Android实现IM多人员组合的群组头像


--结束END--

本文标题: Android实现用户头像更换操作

本文链接: https://www.lsjlt.com/news/25120.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现用户头像更换操作
    你以为头像更换很容易?或许对于用户来讲,在微信上更换一个头像只是点击头像,选择拍照或相册,裁剪返回而已。但是对于程序员来说,要实现其实也挺吃力的(小火柴花了一个下午整理~_~)...
    99+
    2022-06-06
    Android
  • win10如何更换用户头像
    大家在使用win10系统的时候,有没有发现自己的默认用户头像很难看,win10为用户提供了更加个性化的头像方案,用户们可以更加轻松的更换系统的账户头像,那么该怎么更换用户的头像呢?下面就给大家带来win10设置账户头像的方法。1、大家打开我...
    99+
    2023-07-10
  • JavaScript实现更换头像功能
    本文实例为大家分享了JavaScript实现更换头像功能的具体代码,供大家参考,具体内容如下 最主要的是使用jquery的插件 cropper 1、基本使用步骤 1.在 <he...
    99+
    2022-11-12
  • Android实现带头像的用户注册页面
    1.首先是注册页面的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x...
    99+
    2022-06-06
    Android
  • Android实现调用摄像头
    应用场景: 在Android开发过程中,有时需要调用手机自身设备的功能,本文侧重摄像头拍照功能的调用。 知识点介绍: 使用权限:调用手机自身设备功能(摄像头拍照功能),应该确保...
    99+
    2022-06-06
    调用 摄像 摄像头 Android
  • Android实现用户圆形头像和模糊背景
    本文实例为大家分享了Android实现用户圆形头像和模糊背景的具体代码,供大家参考,具体内容如下 1、效果展示 2、在build.gradle(Module)中的dependenc...
    99+
    2022-11-12
  • Android 实现切圆图作为头像使用实例
    Android 切圆图 效果图如下: MyView 类 public class MyView extends View { Bitmap bmp; Paint p...
    99+
    2022-06-06
    Android
  • Android怎么实现虎年头像框制作小程序
    本文小编为大家详细介绍“Android怎么实现虎年头像框制作小程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么实现虎年头像框制作小程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、实现原...
    99+
    2023-06-26
  • 微信小程序实现获取用户信息替换用户名和头像到首页
    目录一、形成空白文件二、小程序页面路径配置三、修改小程序页面四、与WXML玩耍1、插入文字2、插入图片3、分割代码五、与wxss玩耍1、处理图片2、处理文字3、调整布局4、长度单位...
    99+
    2022-11-13
  • Android 使用CameraX实现预览/拍照/录制视频/图片分析/对焦/缩放/切换摄像头等操作
    1. CameraX架构 看官方文档 CameraX架构 有如下这一段话 使用CameraX,借助名为"用例"的抽象概念与设备的相机进行交互。 预览 : 接受用于显示预览的Surface,例如PreviewView图片分析 : 为分析 (例...
    99+
    2023-08-20
    android 音视频 java
  • Android实现调用手机摄像头录像限制录像时长
    本文实例为大家分享了Android实现调用手机摄像头录像限制录像时长的具体代码,供大家参考,具体内容如下 因为服务器空间有限,所以视频时长必须有所限制。 在xml中先布局一个按钮,点...
    99+
    2022-11-13
  • Android利用CircleImageView实现圆形头像的方法
    CircleImageView实现圆形头像代码分享,供大家参考,具体内容如下 一、创建属性文件(attrs.xml) 具体操作: 1、在项目的values文件底下创建一新的属...
    99+
    2022-06-06
    方法 Android
  • Android使用CircleImageView实现圆形头像的方法
    有时我们在应用中会用到圆形头像,下面是利用CircleImageView实现圆形头像的演示,下面效果和代码,效果如图 实现起来也比较简单,先在项目中建一个circleimag...
    99+
    2022-06-06
    方法 Android
  • 微信小程序如何实现获取用户信息替换用户名和头像到首页
    本篇内容介绍了“微信小程序如何实现获取用户信息替换用户名和头像到首页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、形成空白文件点击打开...
    99+
    2023-06-30
  • 怎么使用PHP实现用户头像上传功能
    这篇文章将为大家详细讲解有关怎么使用PHP实现用户头像上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。补充:什么是switch语句,以及它适用于哪些地方?简单的说switch语句也是属于判断语句,i...
    99+
    2023-06-15
  • Android如何实现调用手机摄像头录像限制录像时长
    小编给大家分享一下Android如何实现调用手机摄像头录像限制录像时长,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下因为服务器空间有限,所以视频时长必须有所限制。在xml中先布局一个按钮,点击开始录频。布局一个...
    99+
    2023-06-29
  • android 实现类似微信缓存和即时更新好友头像示例
    引言 使用微信时我们会发现,首次进入微信的好友列表时,会加载好友头像,但是再次进入时,就不用重新加载了,而且其他页面都不用重新加载,说明微信的好友头像是缓存在本地的,然后好友...
    99+
    2022-06-06
    示例 更新 缓存 Android
  • Android调用前后摄像头同时工作实例代码
    硬件环境:小米4Android版本:6.0咱们先看效果图:我把代码贴出来:AndroidMainfest.xml文件(需要新增camera权限): <uses-permission android:name="android.per...
    99+
    2023-05-31
    android 调用 摄像头
  • python通过opencv调用摄像头操作实例分析
    实例源码: #pip3 install opencv-python import cv2 from datetime import datetime FILENAME = 'myvideo.avi' WIDT...
    99+
    2022-06-02
    python opencv 调用摄像头
  • Android 应用更换皮肤实现方法
    Android应用更换皮肤功能的实现思路        我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包...
    99+
    2022-06-06
    方法 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作