• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android中通过访问本地相册或者相机设置用户头像,android用户头像

Android中通过访问本地相册或者相机设置用户头像,android用户头像

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 调用系统相册,android 打开相册,android相册源码,android 相册,android相册选择图片等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android中通过访问本地相册或者相机设置用户头像,android用户头像


目前几乎所有的APP在用户注册时都会有设置头像的需求,大致分为三种情况:

(1)通过获取本地相册的图片,经过裁剪后作为头像。

(2)通过启动手机相机,现拍图片然后裁剪作为头像。

(3)在APP中添加一些自带的头像资源,供用户选择(不够人性化,目前很少使用)。

这次我们简单介绍下通过获取本地相册以及相机拍摄的方法设置头像,实现思路如下:

(1)通过startActivityForResult方法,分别传递调用系统相册的Intent和调用相机拍照的Intent来做选择

(2)调用Android系统中自带的图片剪裁,实现图片的剪裁并在onActivityResult方法中获取数据。

关于如何处理Activity的返回结果,请参照往期博文《Android中Activity处理返回结果的实现方式》。

本次演示效果如下(分别为从本地相册获取以及从相机拍摄获取头像):

 

简单布局文件这里不再做赘述,本次试验使用隐式intent调用相机以及本地相册,未在配置清单上添加权限,依然可以调用。java实现代码如下:

  1 import android.content.Intent;
  2 import android.graphics.Bitmap;
  3 import android.net.Uri;
  4 import android.os.Bundle;
  5 import android.os.Environment;
  6 import android.provider.MediaStore;
  7 import android.support.v7.app.AppCompatActivity;
  8 import android.view.View;
  9 import android.widget.Button;
 10 import android.widget.ImageView;
 11 import android.widget.Toast;
 12 import java.io.File;
 13 
 14 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 15     private Button buttonLocal, buttonCamera;
 16     private ImageView imageView;
 17     //相机拍摄的头像文件(本次演示存放在SD卡根目录下)
 18     private static final File USER_ICON = new File(Environment.getExternalStorageDirectory(), "user_icon.jpg");
 19     //请求识别码(分别为本地相册、相机、图片裁剪)
 20     private static final int CODE_PHOTO_REQUEST = 1;
 21     private static final int CODE_CAMERA_REQUEST = 2;
 22     private static final int CODE_PHOTO_CLIP = 3;
 23     @Override
 24     protected void onCreate(Bundle savedInstanceState) {
 25         super.onCreate(savedInstanceState);
 26         setContentView(R.layout.activity_main);
 27         buttonLocal = (Button) findViewById(R.id.buttonLocal);
 28         buttonCamera = (Button) findViewById(R.id.buttonCamera);
 29         imageView = (ImageView) findViewById(R.id.imageView);
 30         buttonLocal.setOnClickListener(this);
 31         buttonCamera.setOnClickListener(this);
 32     }
 33     //设置点击事件
 34     @Override
 35     public void onClick(View view) {
 36         switch (view.getId()) {
 37             case R.id.buttonLocal:
 38                 //调用获取本地图片的方法
 39                 getPicFromLocal();
 40                 break;
 41             case R.id.buttonCamera:
 42                 //调用相机拍照的方法
 43                 getPicFromCamera();
 44                 break;
 45             default:
 46                 break;
 47         }
 48     }
 49     /**
 50      * 从本机相册获取图片
 51      */
 52     private void getPicFromLocal() {
 53         Intent intent = new Intent();
 54         // 获取本地相册方法一
 55         intent.setAction(Intent.ACTION_GET_CONTENT);
 56         intent.setType("image/*");
 57         //获取本地相册方法二
 58 //        intent.setAction(Intent.ACTION_PICK);
 59 //        intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
 60 //                "image/*");
 61         startActivityForResult(intent, CODE_PHOTO_REQUEST);
 62     }
 63     /**
 64      * 通过相机拍摄获取图片,
 65      * 并存入设置的路径中
 66      */
 67     private void getPicFromCamera() {
 68         Intent intent = new Intent();
 69         intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
 70         // 下面这句指定调用相机拍照后的照片存储的路径
 71         intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(USER_ICON));
 72         startActivityForResult(intent, CODE_CAMERA_REQUEST);
 73     }
 74     /**
 75      * 图片裁剪
 76      *
 77      * @param uri
 78      */
 79     private void photoClip(Uri uri) {
 80         // 调用系统中自带的图片剪裁
 81         Intent intent = new Intent();
 82         intent.setAction("com.android.camera.action.CROP");
 83         intent.setDataAndType(uri, "image/*");
 84         // 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪
 85         intent.putExtra("crop", "true");
 86         // aspectX aspectY 是宽高的比例
 87         intent.putExtra("aspectX", 1);
 88         intent.putExtra("aspectY"



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android中通过访问本地相册或者相机设置用户头像,android用户头像
  • Android上传图片之调用系统拍照和从相册选择图片
  • Android:支持多选的本地相册

相关文章

  • 2017-05-222.4.1 ScrollView(滚动条)
  • 2017-05-26nagios二次开发之“依据分组绘制服务图”
  • 2017-05-26Android线程优先级设置方法技巧,android线程优先级
  • 2017-05-26android开发之路08(ListView&Adapter),androidlistview
  • 2017-05-26Android—基于微信开放平台v3SDK,开发微信支付填坑。,androidv3sdk
  • 2017-05-26AS下NDK开发(一),as下ndk开发
  • 2017-05-26Android第五天-->创建自定义控件,android第五天
  • 2017-05-2653.Android Canvas Paint相关内容介绍
  • 2017-05-26okhttp3.4.1+retrofit2.1.0实现离线缓存,retrofitokhttp缓存
  • 2017-05-26android StringBuffer 和StringBuilder,androidstringbuffer

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何「偷」Android 的内存?,「偷」android
    • Android中使用Notification实现进度通知栏(示例三),notification进度条
    • 硅谷新闻2--禁止viewpager预加载,2--viewpager
    • Android 四大组件之Activity(续2),androidactivity
    • 使用Android-Debug-Database 在浏览器中查看App的数据库,清科zdatabase数据库
    • AndroidStudio修改常用快捷键,androidstudio
    • 匿名社交1--登陆,匿名社交1--
    • Android Studio使用中的异常,AndroidStudio使用
    • 2.3.4 ImageView(图像视图)
    • 转载:内存泄露与内存溢出的区别,转载泄露溢出区别

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有