Android 上传图片/头像——取得手机内的图片或拍照取得图片

QQ与微信等社交软件都有上传图片/头像的功能。也可以直接把拍照得到的图片上传,很方便。

今天我就把我做的类似功能有大家分享一下。

1、权限

权限很简单就是应用程序读写创建文件的权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
2、取相册的图片并上传

Intent intent = new Intent(Intent.ACTION_PICK, null);
				intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
				startActivityForResult(intent, PHOTO_PICK);
Intent.ACTION_PICK       代表从列表中选择某项并返回所选数据

MediaStore.Images.Media.EXTERNAL_CONTENT_URL    取得手机上的图片

PHOTO_PICK  是一个常量

3、取得拍摄的照片

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
				intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(picPath, picName)));
				startActivityForResult(intent, PHOTO_CAMERA);

MediaStore.ACTION_IMAGE_CAPTURE   捕获图片

MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(picPath, picName))   自定义输出位置

PHOTO_CAMERA  是一个常量

4、onActivityResult处理

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if ((requestCode == PHOTO_CAMERA || requestCode == PHOTO_PICK)) {// 图片返回
			if (requestCode == PHOTO_PICK && data != null) { // 相册图片复制
				Uri uri = data.getData(); // 获得图片的uri
				String path = getImagePath(uri);				
				copyPic(path, picPath + File.separator + picName);
			}
			String path = picPath + File.separator + picName;			
			imageView.setImageDrawable(new BitmapDrawable(BitmapFactory.decodeFile(path)));
		}
	}

5、取得从相册中返回的的图片路径

private String getImagePath(Uri uri) {
		String imagePath = "";
		Cursor cursor = getContentResolver().query(uri, null, null, null, null);
		if (cursor != null && cursor.moveToFirst()) {
			imagePath = cursor.getString(1); // 图片文件路径
		} else if (cursor == null) {
			imagePath = uri.toString().substring(7, uri.toString().length());
		}
		if (cursor != null)
			cursor.close();
		return imagePath;
	}

6、复制图片到应用文件夹下(可不复制,直接引用原路径),就不在列出了。


效果如图:

图片我都是随便找的,所以丑爆了,望大家见谅!


这里是资源页,点击打开链接有需要的可以下载



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值