Android_通过Intent调用系统相机和相册回传bitmap

原创 2016年06月01日 09:45:22

DO

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView 
        android:id="@+id/takePhoto_imageView"
        android:layout_margin="50dp"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher"/>

    <Button 
        android:layout_marginTop="90px"
        android:id="@+id/takePhoto_bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="20sp"
        android:textStyle="bold"
        android:text="拍照"/>

    <Button 
        android:id="@+id/takePhoto_bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="20sp"
        android:textStyle="bold"
        android:text="从相册选择照片"/>
</LinearLayout>

MainActivity.java

package com.lxf;

import java.io.FileNotFoundException;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

/**
 * @address BeiJing
 * @author LiXufei
 * @function  拍照取图相册取图
 */
public class cTakePhoto extends Activity{

    private ImageView imageView;
    private int TAKE_PHOTO=1;   //拍照
    private int GET_PHOTO=2;    //取照片

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.android_takephoto);
        //获取ImageView控件
        imageView = (ImageView) findViewById(R.id.takePhoto_imageView);

        /*
         * 拍照取图
         */
        findViewById(R.id.takePhoto_bt1).setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                //设置拍照意图
                Intent mIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(mIntent, TAKE_PHOTO);

            }
        });

        /*
         * 相册取图
         */
        findViewById(R.id.takePhoto_bt2).setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("image/*");
                startActivityForResult(intent, GET_PHOTO);

            }
        });

    }
    //接受回传值
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {  //回传值接受成功

            if (requestCode == TAKE_PHOTO) {    //拍照取图

                Bundle bundle = data.getExtras();   //获取data数据集合
                Bitmap bitmap = (Bitmap) bundle.get("data");        //获得data数据
                Log.i("TAG", "拍照回传bitmap:"+bitmap);
                imageView.setImageBitmap(bitmap);

            }

            if (requestCode == GET_PHOTO) {     //相册取图

                ContentResolver contentResolver = getContentResolver();
                try {

                    Bitmap bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(data.getData()));
                    Log.i("TAG", "从相册回传bitmap:"+bitmap);
                    imageView.setImageBitmap(bitmap);

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

            }

        }

    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 从相册中选择照片并返回

参考自《第一行代码》及相关资料,这里存一遍后以后就不用再重头打一遍了。。 首先由于进行读写操作,要在 AndroidManifest.xml中声明权限: 调用系统相册: private ...
  • wbin233
  • wbin233
  • 2016年03月22日 14:25
  • 2895

Android 调用系统相机返回data为null

现在市场上很多app都有拍照功能,一般简单的拍照使用系统的拍照功能就足够了,复杂一些的需要自定义camera去实现。 使用系统的拍照功能一般代码实现如下: /** * 调用系统拍照功能 */ @Ov...
  • wenqiaoqqq
  • wenqiaoqqq
  • 2016年05月27日 14:47
  • 4055

Android_照相机Camera_使用intent调用系统照相机在onActivityResult返回data为空

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/16916279 1.调用系统照相机 [java...
  • u010013573
  • u010013573
  • 2015年12月26日 21:04
  • 5052

Android头像上传(本地相册和调用系统相机)

Android头像上传(本地相册和调用系统相机)  市面上上的android应用目前大都包含有头像上传的功能,恰好在本次的项目中在完成头像上传的功能中遇到了一些问题,在此进行记录,以供日后查阅方便.1...
  • android_wxg
  • android_wxg
  • 2016年12月02日 11:34
  • 707

调用系统相机、相册、剪裁图片并上传(常用于上传头像,兼容Android7.0)

解决上传头像类似功能在Android 7.0上的兼容问题
  • hansion3333
  • hansion3333
  • 2017年10月31日 09:23
  • 1407

Android Studio 3.0 下使用Intent传递数据和数据回传的示例

  • 2017年11月23日 21:31
  • 18.73MB
  • 下载

调用相机相册获取图片bitmap,转化成base64

  • 2015年12月03日 15:44
  • 3MB
  • 下载

Android调取系统相册和相机照片设置到ImageView并上传到服务器

网上的这类答案很多,不同的手机也会出现不同的情况,自己每次做这个功能都要掉进去很多次坑,分享给大家,也自己做一个笔记 话不多先看下效果 代码开始: 首先定义一个 Popu...
  • r13303006375
  • r13303006375
  • 2016年09月29日 16:45
  • 1151

Android开发基础 调用相机 系统相册(并对图片进行压缩处理)

前言:做了好久的安卓了,一直想写点东西分享下。但是又总觉得自己学的还不够好,说出来有可能会误导人,所以一直都没有发,最近在项目中遇到了最多的问题就是关于图片的问题,应该算是比较简单的了,拿出来跟大家分...
  • L_zhp
  • L_zhp
  • 2016年03月10日 15:05
  • 3582

Android调用系统相机或相册更换头像

在android项目开发中,手机端的开发中,都会涉及到用户信息,而用户信息中就会涉及到切换用户头像的功能,刚好前端时间进行过这方面的开发,下面是该功能的实现: 布局文件中我使用的是ImageButt...
  • wangwo1991
  • wangwo1991
  • 2016年01月12日 14:07
  • 3222
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android_通过Intent调用系统相机和相册回传bitmap
举报原因:
原因补充:

(最多只允许输入30个字)