java头像选择系统_调用系统拍照和在系统图库选择照片设置头像

该博客介绍了如何在Java应用程序中实现头像选择功能,包括调用系统相机拍照并保存图片,以及从系统图库中选择照片。通过监听按钮点击事件启动相机和图库应用,并在`onActivityResult`方法中处理返回的图片数据,展示在ImageView上。
摘要由CSDN通过智能技术生成

packagecom.create.intenttest;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.graphics.Bitmap;importandroid.net.Uri;importandroid.os.Bundle;importandroid.os.Environment;importandroid.provider.MediaStore;importandroid.support.v7.app.AppCompatActivity;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;importandroid.widget.ImageView;importjava.io.File;public class MainActivity extendsAppCompatActivity {privateSharedPreferences sp;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

sp= getSharedPreferences("config", MODE_PRIVATE);

Button takePhoto=(Button) findViewById(R.id.btn);

Button selectPhoto=(Button) findViewById(R.id.btn2);

takePhoto.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//调用相机逻辑

Intent takeIntent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//下面这句指定调用相机拍照后的照片存储的路径//注意,当给照片指定路径后,onactivityresult()方法中返回的data就为null了,这时要相取的数据//可以考虑把你设定的路径存到sp中,设置照片时在sp中取出来,使用imageView.setImageBitmap(sp.getString("photoPath"))//当然,如果你拍摄和获取是在同一个activity中路径直接设为成员变量就好。无需sp。//takeIntent.putExtra(MediaStore.EXTRA_OUTPUT,//Uri.fromFile(new File(Environment.getExternalStorageDirectory(), Constant.PHOTONAME)));//sp.edit().putString(Constant.TAKE_PHOTO_PATH, Environment.getExternalStorageDirectory() + "/" + Constant.PHOTONAME).commit();

startActivityForResult(takeIntent, Constant.TAKEPHOTO_CODE);

}

});

selectPhoto.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

Intent intent= new Intent(Intent.ACTION_GET_CONTENT);//ACTION_OPEN_DOCUMENT

intent.addCategory(Intent.CATEGORY_OPENABLE);

intent.setType("image/jpeg");

startActivityForResult(intent, Constant.SELECT_PIC);

}

});

}

@Overridepublic void onActivityResult(int requestCode, intresultCode, Intent data) {

Log.e("data", data + "----------------");

ImageView imageView=(ImageView) findViewById(R.id.image);switch(requestCode) {case Constant.TAKEPHOTO_CODE://相机返回

if (data != null) {if (data.hasExtra("data")) {

Bitmap thumbnail= data.getParcelableExtra("data");

imageView.setImageBitmap(thumbnail);

}

}case Constant.SELECT_PIC://相册返回

if (data != null) {

Uri uri=data.getData();

imageView.setImageURI(uri);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值