Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要为大家详细介绍了Android打开相机和相册实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
打开相机
- /**
- * 选择相机
- */
- private void showCamera() {
- // 跳转到系统照相机
- Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- if (cameraIntent.resolveActivity(getPackageManager()) != null) {
- // 设置系统相机拍照后的输出路径
- // 创建临时文件
- mTmpFile = OtherUtils.createFile(getApplicationContext());
- cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile));
- startActivityForResult(cameraIntent, REQUEST_CAMERA);
- } else {
- Toast.makeText(getApplicationContext(), R.string.msg_no_camera, Toast.LENGTH_SHORT).show();
- }
- }
打开相册
- Intent albumIntent = new Intent(Intent.ACTION_PICK, null);
- albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
- startActivityForResult(albumIntent, REQUEST_ALBUM_OK);
onActivityResult
- @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode) {
- case REQUEST_CAMERA:
- //请求相机
- if (mTmpFile != null) {
- Log.d(TAG, "onActivityResult: 请求相机: " + mTmpFile.getAbsolutePath());
- Picasso.with(this).load(mTmpFile).centerCrop().resize(OtherUtils.dip2px(this, 100), OtherUtils.dip2px(this, 100)).error(R.mipmap.pictures_no).into(mIvDispaly);
- }
- break;
- case REQUEST_ALBUM_OK:
- Log.d(TAG, "onActivityResult:相册 " + data.getData().toString());
- ContentResolver resolver = getContentResolver();
- try {
- InputStream inputStream = resolver.openInputStream(data.getData());
- Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
- mIvDispaly.setImageBitmap(bitmap);
- } catch(FileNotFoundException e) {
- e.printStackTrace();
- }
- // Cursor query = resolver.query(data.getData(), null, null, null, null);
- //
- // String str = null;
- // while (query.moveToNext()) {
- // Log.d(TAG, "onActivityResult:数量 " + query.getCount());
- // str =query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA));
- // Log.d(TAG, "onActivityResult: 列名" + query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA)));
- // }
- // query.close();
- // Picasso.with(this).load(new File(str)).centerCrop().resize(OtherUtils.dip2px(this,100),OtherUtils.dip2px(this,100))
- // .error(R.mipmap.pictures_no).into(mIvDispaly);
- break;
- }
- }
OtherUtils
- import android.content.Context;
- import android.os.Environment;
- import java.io.File;
- import java.util.Date;
- /**
- * Created by 刘楠 on 2016/7/20 0020.22:37
- */
- public class OtherUtils {
- public static int dip2px(Context context, float dpValue) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int)(dpValue * scale + 0.5f);
- }
- public static int px2dip(Context context, float pxValue) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int)(pxValue / scale + 0.5f);
- }
- /**
- * 获取拍照相片存储文件
- * @param context
- * @return
- */
- public static File createFile(Context context) {
- File file;
- if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
- String timeStamp = String.valueOf(new Date().getTime());
- file = new File(Environment.getExternalStorageDirectory() + File.separator + timeStamp + ".jpg");
- } else {
- File cacheDir = context.getCacheDir();
- String timeStamp = String.valueOf(new Date().getTime());
- file = new File(cacheDir, timeStamp + ".jpg");
- }
- return file;
- }
- }
来源: http://www.phperz.com/article/17/0918/348304.html