文档章节

拍照,录像的代码简单实现

李小白兔
 李小白兔
发布于 2016/09/23 11:01
字数 315
阅读 36
收藏 2
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.VideoView;

import java.io.File;



//TODO 请求码的目的就是区别他们到底要执行什么功能
public class MainActivity extends AppCompatActivity {
    //TODO 拍照的请求码
    private static final int REQUEST_IMAGE = 0;
    //TODO 录像的请求码
    private static final int REQUEST_VIDEO = 1;
    private ImageView iv;
    private VideoView vv;

    private String pathImage = "/sdcard/image.jpg";
    private String pathVideo = "/sdcard/video.mp4";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
        vv = (VideoView) findViewById(R.id.vv);
    }

            public void doClick(View view){
                switch (view.getId()){
                    case R.id.btn_image:
                        //TODO 启动拍照功能 2:打开相机进行拍照(当不传入MediaStore.EXTRA_OUTPUT时,
                        // TODO 将通过Intent返回缩略图,反之则通过我们指定的路径返回高清图)
                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(pathImage)));
                        startActivityForResult(intent,REQUEST_IMAGE);
                        break;
                    case R.id.btn_video:
                        //TODO 打开相机进行录像,并启动录像功能
                        intent  = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(pathVideo)));
                        startActivityForResult(intent,REQUEST_VIDEO);
                        break;
                }
            }

    //TODO 请求码
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       // super.onActivityResult(requestCode, resultCode, data);
        if (requestCode== Activity.RESULT_CANCELED){
            Toast.makeText(MainActivity.this, "您已取消操作", Toast.LENGTH_SHORT).show();

            return;
        }
        switch (requestCode){
            case REQUEST_IMAGE:
                //TODO 处理照相返回的数据
                if (data == null){
                    Bitmap bm = BitmapFactory.decodeFile(pathImage);
                    if (bm!=null){
                        iv.setImageBitmap(bm);
                    }
                }else {
                    //TODO 返回缩略图
                Bitmap bm = data.getParcelableExtra("data");
                if (bm!=null) {
                    //TODO
                    Log.e("info", "width" + bm.getWidth() + "heught=" + bm.getHeight());
                    iv.setImageBitmap(bm);
                }
                    break;
                } case REQUEST_VIDEO:
                        Uri uri = data.getData();
                        vv.setVideoURI(uri);
                        vv.start();
                        break;

                }
        }
    }

© 著作权归作者所有

李小白兔
粉丝 0
博文 6
码字总数 2446
作品 0
深圳
私信 提问
微信小程序实现点击拍照长按录像功能

微信小程序实现点击拍照长按录像功能 代码里面注释写的都很详细,直接上代码。官方的组件属性中有触摸开始和触摸结束属性。本功能依靠这些属性实现。 .wxml代码: .wxss代码: .js代码: ---...

Java魑魅魍魉
07/19
0
0
Vr设备 APP开发录像思路

现在出现很多 360 VR摄像头 ,,然后自带的APP 可以 通过手机连接 到摄像头 拍照录像。 谁知道 这个录像时怎么实现的? 因为要通过手机实时预览,但是当使用mediarecord录像的时候,, onpr...

huajiqingchun
2017/04/18
252
0
大疆文档(6)-Android教程-相机应用程序

本节全篇为大疆 Mobile SDK 安卓教程 部分,ios教程参见 IOS教程 . 相机应用程序 本教程旨在让您对DJI Mobile SDK有一个基本的了解。它将实现FPV视图和两个基本的相机功能:拍摄照片 和 录制...

世外大帝
04/11
0
0
iOS Avcapture

我想用Avcapture来自定义一个相机,这些我都做好了,但是拍照和录像界面的切换出现问题了,不知道改怎么切换,我拍照和录像都单独写成一个控制器,

游丶丶客
2014/10/27
158
0
Android Camera(一)

本文译自:http://developer.android.com/guide/topics/media/camera.html Android框架包含了对各种Camera以及其上可用的Camera功能的支持,它允许你在应用程序中抓拍照片和视频。本文讨论快...

长平狐
2012/10/16
334
0

没有更多内容

加载失败,请刷新页面

加载更多

PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
29分钟前
7
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
5
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
7
0
Go语言Hello world(GOPATH和Go Module版)

本文是「vangoleo的Go语言学习笔记」系列文章之一。 官网: http://www.vangoleo.com/go/go-hello-world-02/ 往期回顾: Go语言入门-你好,Go语言 Go语言入门-Hello World(Go Playground版) 上...

vangoleo
昨天
9
0
C++虚函数以及虚函数表

在了解虚函数之前先了解下对象模型: 对象模型: 在C++中,有两种数据成员(class data members):static 和nonstatic,以及三种类成员函数(class member functions):static、nonstatic和v...

黑白双键
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部