• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > andriod打开摄像头和打开相册,andriod摄像头相册

andriod打开摄像头和打开相册,andriod摄像头相册

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了andriod编程软件,andriod studio 教程,andriodmarket,安卓 andriod,andriod7.0等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

andriod打开摄像头和打开相册,andriod摄像头相册


package com.example.yanlei.picture;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.media.ExifInterface;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    private static final String tag = "MainActivity";
    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
    private static final int PICK_IMAGE_ACTIVITY_REQUEST_CODE = 200;

    private ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) this.findViewById(R.id.image_view);

        Button button = (Button) this.findViewById(R.id.open_camera);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                takePicture();
            }
        });

        Button pickImageBtn = (Button) this.findViewById(R.id.pick_image);
        pickImageBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openAlbum();
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
    private static String picFileFullName;
    //拍照
    public void takePicture(){
        String state = Environment.getExternalStorageState();
        if (state.equals(Environment.MEDIA_MOUNTED)) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File outDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            if (!outDir.exists()) {
                outDir.mkdirs();
            }
            File outFile =  new File(outDir, System.currentTimeMillis() + ".jpg");
            picFileFullName = outFile.getAbsolutePath();
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(outFile));
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
            startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
        } else{
            Log.e(tag, "请确认已经插入SD卡");
        }
    }

    //打开本地相册
    public void openAlbum(){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        this.startActivityForResult(intent, PICK_IMAGE_ACTIVITY_REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                Log.e(tag, "获取图片成功,path="+picFileFullName);
                toast("获取图片成功,path="+picFileFullName);
                setImageView(picFileFullName);
            } else if (resultCode == RESULT_CANCELED) {
                // 用户取消了图像捕获
            } else {
                // 图像捕获失败,提示用户
                Log.e(tag, "拍照失败");
            }
        } else if (requestCode == PICK_IMAGE_ACTIVITY_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                Uri uri = data.getData();
                if(uri != null){
                    String realPath = getRealPathFromURI(uri);
                    Log.e(tag, "获取图片成功,path="+realPath);
                    toast("获取图片成功,path="+realPath);
                    setImageView(realPath);
                }else{
                    Log.e(tag, "从相册获取图片失败");
                }
            }
        }
    }

    private void setImageView(String realPath){
        Bitmap bmp = BitmapFactory.decodeFile(realPath);
        int degree = readPictureDegree(realPath);
        if(degree <= 0){
            imageView.setImageBitmap(bmp);
        }else{
            Log.e(tag, "rotate:"+degree);
            //创建操作图片是用的matrix对象
            Matrix matrix=new Matrix();
            //旋转图片动作
       



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • andriod 动态显示当前时间,andriod当前时间
  • andriod 资源文件之存取操作,andriod资源文件
  • andriod arcgis加载影像TIF,andriodarcgis
  • arcgis andriod 加载影像,arcgisandriod
  • andriod 获得应用程序名称,andriod应用程序
  • andriod打开摄像头和打开相册,andriod摄像头相册

相关文章

  • 2017-05-26RadioButton与CheckBox,radiobutton
  • 2017-05-26Android5.0新特性-Material Design
  • 2017-05-26lesson15-QT多线程
  • 2017-05-26安卓开源项目周报0117,安卓开源项目0117
  • 2017-05-26Android开发技巧之Camera拍照功能
  • 2017-05-26Linux简介及常用命令使用5--linux shell编程入门,5--linux编程入门
  • 2017-05-26Android取消EditText自动获取焦点默认行为,androidedittext
  • 2017-05-26java.lang.IllegalArgumentException: Illegal character in query at index 261,
  • 2017-05-26For each循环中使用remove方法。,eachremove
  • 2017-05-26Android对话框,android弹出对话框

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • make menuconfig Kconfig Makefile .config的关系
    • Android 学习1----控件的学习,android1----
    • Android--绑定服务调用服务的方法
    • android:giavity和layout_gravity的区别
    • android:ListView缓存机制及BaseAdapter的三重境界(逗比式,普通式,文艺式)
    • 百度地图开发的学习(一),百度地图开发学习
    • Android逆向之旅---解析编译之后的Dex文件格式
    • 我的android学习经历5,android学习经历5
    • SQLite 在 Android 的应用,sqliteandroid应用
    • 7.3.1 Android 文件上传

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有