用户注册时头像的获取

从相册获取头像和用照相机拍照获取
@Override
public void onClick(View v) {

switch (v.getId()) {
// 返回按钮
case R.id.btn_left:

break;
// 完成按钮
case R.id.btn_right:
registerService();
break;
// 到相册获取照片
case R.id.btn_register_goto_xiangce:
Intent intent3 = new Intent(Intent.ACTION_GET_CONTENT);
intent3.addCategory(Intent.CATEGORY_OPENABLE);
intent3.setType("image/*");
intent3.putExtra("crop", "true");
intent3.putExtra("aspectX", 1);
intent3.putExtra("aspectY", 1);
intent3.putExtra("outputX", 150);
intent3.putExtra("outputY", 150);
intent3.putExtra("return-data", true);
startActivityForResult(intent3, 3);
break;
// 用照相机拍照获取头像
case R.id.btn_register_goto_camera:
boolean sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
if (sdCardExist) {
Intent intent4 = new Intent(
"android.media.action.IMAGE_CAPTURE");
intent4.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), "camera.jpg")));
intent4.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
startActivityForResult(intent4, 4);

} else
Toast.makeText(v.getContext(), "请插入sd卡", Toast.LENGTH_LONG)
.show();

break;

default:
break;
}
super.onClick(v);
}


获得图片后返回:
// 从相册或者照相机获取照片后返回
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
} else {
switch (requestCode) {
case 3:
Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
BitmapDrawable bd = new BitmapDrawable(
RegisterSecondActivity.this.getResources(),
cameraBitmap);
touxiang_byte = bitmapToBytes(cameraBitmap);
str_head = byteToBase64(touxiang_byte);
try {
img_head.setBackgroundDrawable(bd);

} catch (Exception e) {
e.printStackTrace();
}

break;

/* 拍照后保存图片,并跳到裁剪功能 */
case 4:
try {
InputStream stream = new FileInputStream(new File(
Environment.getExternalStorageDirectory(),
"camera.jpg"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/camera.jpg",
opts); // 此时返回bm为空
opts.inJustDecodeBounds = false;
int be = (int) (opts.outHeight / (float) 200);
if (be <= 0)
be = 1;
opts.inSampleSize = be;
// 重新读入图片,注意这次要把options.inJustDecodeBounds 设为 false哦
bitmap = BitmapFactory.decodeFile("/sdcard/camera.jpg", opts);
BitmapDrawable bd_camera = new BitmapDrawable(
RegisterSecondActivity.this.getResources(), bitmap);
touxiang_byte = bitmapToBytes(bitmap);
img_head.setBackgroundDrawable(bd_camera);
str_head = byteToBase64(touxiang_byte);
break;
}

}
super.onActivityResult(requestCode, resultCode, data);
}


// 将图片转换为二进制数组的方法
public byte[] bitmapToBytes(Bitmap bitmap) {
if (bitmap == null) {
return null;
}
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 将Bitmap压缩成PNG编码,质量为100%存储
bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);// 除了PNG还有很多常见格式,如jpeg等。
return os.toByteArray();
}


// 将数组转换成字符串
public String byteToBase64(byte[] tBytes) {
String tString = "";
String tSentString = "";

tString = Base64.encodeToString(tBytes, 0);
try {
tSentString = URLEncoder.encode(tString, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return tSentString;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值