Android调用系统相机简单实现

来源:互联网 发布:空间数据的拓扑关系 编辑:程序博客网 时间:2024/04/29 23:09

  • Android调用系统相机简单实现
    • 项目简单介绍
    • 关键代码
    • 项目源码

Android调用系统相机简单实现

项目简单介绍

调用系统相机两种简单的实现方法,两种都是想调用系统相机进行拍到,第一种返回data中的数据,是缩略图,第二种照片是先保存再通过uri取出,保存的是原图。

关键代码

activity_main.xml中的代码如下:

 <!-- 两种实现方式 设置两个按钮 -->    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/Mode1"        android:onClick="mode1" />    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/Mode2"        android:onClick="mode2" />    <!-- 设置一个View用于显示图片 -->    <ImageView         android:id="@+id/iv"        android:layout_width="match_parent"        android:layout_height="match_parent"/>

上面的代码很简单,没必要再做解释,下面是MainActivity.java中的代码:

/*     * 方式一点击事件实现     * */    public void mode1(View view) {        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        startActivityForResult(intent, Mode_1);    }    /*     * 方式二点击事件实现     * */    public void mode2(View view) {        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        Uri photoUri = Uri.fromFile(new File(mFilePath));        intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);        startActivityForResult(intent, Mode_2);    }    /*     * 重新返回函数的代码     * */    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if(resultCode == RESULT_OK){            if(requestCode == Mode_1){                Bundle bundle = data.getExtras();                Bitmap bitmap = (Bitmap) bundle.get("data");                mImageView.setImageBitmap(bitmap);            }            else if(requestCode == Mode_2){                FileInputStream fis = null;                try {                    fis = new FileInputStream(mFilePath);                    Bitmap bitmap = BitmapFactory.decodeStream(fis);                    mImageView.setImageBitmap(bitmap);                } catch (FileNotFoundException e) {                    e.printStackTrace();                }finally{                    try {                        fis.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }        }    }

项目源码

点击下载源码

1 0
原创粉丝点击