Android简单的调用系统相机和相册

  public void reasonAdd(View v)
    {
       final String [] strs=new String[]{"拍照","相册"};
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("照片");
        builder.setItems(strs, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //拍照可以用两种方法来实现
                //1.调用系统相机 2.自定义相机
                if (which==0) {

                       Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(intent,1);

                }
                //调用系统相册
                if (which==1) {
                    Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
                    intent.addCategory(Intent.CATEGORY_OPENABLE);
                    intent.setType("image/*");
                    intent.putExtra("crop", "true");
                    intent.putExtra("aspectX", 1);
                    intent.putExtra("aspectY", 1);
                    intent.putExtra("outputX", 80);
                    intent.putExtra("outputY", 80);
                    intent.putExtra("return-data", true);
                    startActivityForResult(intent, 0);
                }

            }
        });
        builder.show();
    }
     // 写一个方法来实现相机
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode== Activity.RESULT_OK)
        {

            String sdStatus= Environment.getExternalStorageState();
            if(!sdStatus.equals(Environment.MEDIA_MOUNTED))
            {
                Log.i("TestFile", "SD card is not avaiable right now");
                return;
            }
            String name= Calendar.getInstance(Locale.CANADA)+".jpg";
            Bundle bundle=data.getExtras();
            FileOutputStream b=null;
            // 实现设置图片的大小,然后显示
            Intent intent1=new Intent("com.android.camera.actioin.CROP");
            intent1.putExtra("crop","true");
            intent1.putExtra("outputX",250);
            intent1.putExtra("outputY", 250);
            intent1.putExtra("aspectX",1);
            intent1.putExtra("aspectY", 1);
            Bitmap source= (Bitmap) bundle.get("data");
            file=new File("/sdcard/myimage/");
            file.mkdir();
            String Filename="/sdcard/myimage/"+name;
            try {
                b=new FileOutputStream(Filename);
                source.compress(Bitmap.CompressFormat.JPEG,100,b);
                b.flush();
                b.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            leave_iv_icon.setImageBitmap(source);
            icon=source;
        }else if(resultCode==0)
        {
            Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
            leave_iv_icon.setImageBitmap(cameraBitmap);
            icon=cameraBitmap;
        }
    }
时间: 2024-10-13 02:25:14

Android简单的调用系统相机和相册的相关文章

Android 调用系统相机以及相册源码

Android 调用系统相机拍照.以及相册.完成之后图片是上传到app上.前面的功能已经测试过了.没有上传到服务器,因为我没服务器测试.但项目里面有个类可以参考上传图片到服务器,我就没测试了.接下来看代码,虽然注释写得少,但其作用看英文单词意思,又在或是查看调用. 项目源码下载地址:http://download.csdn.net/detail/qq_16064871/8585169 转载请注明出处: http://blog.csdn.net/qq_16064871 package com.ex

iOS开发 调用系统相机和相册

调用系统相机和相册 (iPad,iPhone)打开相机:(iPad,iPhone)//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库      UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;  //    if (![UIImagePickerController isSourceTypeAvailab

Android下载图片/调用系统相机拍照、显示并保存到本地

package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.

Android调用系统相机和相册

准备工作 权限 <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission. WRITE_EXTERNAL_STORAGE" /> <!--请求访问使用照相设备--> <uses-permission android:name="android.permission.CAMERA" /> 常量 public final static

iOS 调用系统相机拍照相册功能

写一个按钮直接复制下面代码 视图必须继承 <UIImagePickerControllerDelegate,UIPopoverControllerDelegate,UIActionSheetDelegate>代理 //取拍照片 - (void)showActionSheet { UIActionSheet *sheet; if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCame

Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是“确定”图标,返回的resultCode = -1(Activity.RESULT_OK): 如果点击的是底部的“返回”键,返回的resultCode = 0(Activity.RESULT_CANCELED). 简单的调用系统相机的写法: //调用系统拍照 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); String p

Android 调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over

android 调用系统相机获取图片、调用系统相册获取图片,并对图片进行截取

打开系统相册获取图片并截取,代码相对简单 1 Intent intent = new Intent(Intent.ACTION_GET_CONTENT,null); 2 intent.setType("image/*"); 3 intent.putExtra("crop", "true"); 4 5 //WIDTH 和 HEIGHT指的是截取框的宽高比例,如设WIDTH = 1,HEIGHT = 1,截取框就为正方形 6 intent.putEx

Android上传图片之调用系统拍照和从相册选择图片

Android上传图片之调用系统拍照和从相册选择图片 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015年12月17日下午发了第一篇博文,现在是2016年4月6日.时间间隔长的过分啊,我自己都看不下去了.原因呢?当然是自己的原因,其实是有很多时间来些博客的,但是这些时间都花在DOTA上了(还是太年轻啊).请原谅我的过错--. 一.概述: 现在几乎应用都会用到上传图片的功能,而要上传图片,首先得选择图片,本文不针对如何上传图片到服务器(每个项目与服务器交互的方式不同,因