Camera摄像头

<LinearLayout
    android:id="@+id/btn_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btnClick1"
        android:text="拍照1"/>

    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btnClick2"
        android:text="拍照2"/>
</LinearLayout>

<ImageView
    android:id="@+id/iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/btn_layout"/>

两种读取图片的方法

1.在拍照的时候传递一个文件地址,展示图片时即从该地址读取

2.拍照的时候将图片保存到数据库,展示图片时选取数据库最近的一张

public class MainActivity extends AppCompatActivity {

    private ImageView iv;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HH:mm:ss");
    private File file;

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

    public void btnClick1(View view) {
        Intent intent = new Intent();
        //打开系统摄像头
        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
        //设置所拍照片的保存路径
        file = new File(Environment
                .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "Image-" + dateFormat.format(new Date()));
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
        startActivityForResult(intent, 1);
    }

    //data中携带的数据是所拍照片的缩略图
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //如果拍照成功
        if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
            /***************************不添加图片保存路径时调用****************************/
            //提取data中携带的Bitmap数据(如果在启动系统相机的时候已经指定了图片的保存位置,则这里不会返回缩略图)
//            Bitmap bitmap = (Bitmap) data.getExtras().get("data");
//            iv.setImageBitmap(bitmap);
//            Log.d("lenve", "onActivityResult: width:" + bitmap.getWidth() + ";height:" + bitmap.getHeight());
            /****************************添加图片保存路径后调用这里的方法,使用创建File的方式来构造一个Uri*****************************************/
//            iv.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath()));
            /******************************使用ContentResolver来获得一个Uri**********************************************************************/
            Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.Media.DATA}
                    , null, null, MediaStore.Images.Media.DATE_ADDED + " desc");
            String imageUrl = null;
            if (cursor.moveToFirst()) {
                imageUrl = cursor.getString(0);
                iv.setImageBitmap(BitmapFactory.decodeFile(imageUrl));
            }
            cursor.close();
        }
    }

    public void btnClick2(View view) {
        Intent intent = new Intent();
        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
        ContentValues values = new ContentValues();
        //设置图片名称
        values.put(MediaStore.Images.Media.DISPLAY_NAME, "Image-" + dateFormat.format(new Date()) + ".png");
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
        //往图片数据库中存储数据
        Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
        startActivityForResult(intent, 1);
    }
}
时间: 2024-10-07 02:47:36

Camera摄像头的相关文章

phonegap入门-- Camera 摄像头

今天看了一下phonegap 的Camera摄像头章节入门知识,从官网ApI上看了例子,然后分析了一下: 配置可以看一下官网的API:http://www.phonegap100.com/doc/cordova_camera_camera.md.html#Camera 通过看官网API,下面总结一下祥光方法和属性参数: <span style="font-size:18px;">Camera Api简单介绍 Camera选择使用摄像头拍照,或从设备相册中获取一张照片.图片以

unity中camera摄像头控制详解

目录 1. 缘起 2. 开发 2.1. 建立项目 2.2. 旋转 2.2.1. 四元数 2.3. 移动 2.3.1. 向量操作 2.4. 镜头拉伸 2.5. 复位 2.6. 优化 1 缘起 我们的产品是使用unity开发水利BIM(水利建筑信息模型),项目中需要控制摄像 头对模型进行360度查看,请注意所有操作都是移动摄像头,不是移动模型.摄 像头能进行移动.旋转.改变焦距操作,类似于SketchUp的控制操作: 摄像头移动时,根据当前旋转方向(Rotation)进行移动 摄像头距离模型越远,摄

[转]Android中直播视频技术探究之---摄像头Camera视频源数据采集解析

http://blog.csdn.net/jiangwei0910410003/article/details/52057543 一.前言 在视频直播中一般都是两种视频数据源,一个是摄像头数据,一个是录制桌面数据,而一般来说美女妹子直播都是来自于摄像头数据,游戏直播都是录制桌面数据的,那么今天就来看看第一个数据源数据采集分析,Android中使用摄像头的场景很多,在没有直播这个行业出现之前,之前用到摄像头的最多就两个场景,一个是二维码扫描,一个是美颜拍照类的应用.那么这里就来看看Android中

android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)

一.摄像头工作原理 上一篇我们讲了摄像头模组的组成,工作原理,做为一种了解.下面我们析摄像头从寄存器角度是怎么工作的.如何阅读摄像头规格书(针对驱动调节时用到关键参数,以GT2005为例). 规格书,也就是一个器件所有的说明,精确到器件每一个细节,软件关心的寄存器.硬件关心的电气特性.封装等等.单单驱动方面,我们只看对我们有用的方面就可以了,没必要全部看完.主要这样资料全都是鸟语(En),全部看完一方面时间上会用的比较多,找到关键的地方就行了. 1.camera的总体示意图如下:控制部分为摄像头

html5中拍照camera

方法: getCamera: 获取摄像头管理对象 对象: Camera: 摄像头对象 CameraOption: JSON对象,调用摄像头的参数 PopPosition: JSON对象,弹出拍照或摄像界面指示位置 回调方法: CameraSuccessCallback: 调用摄像头操作成功回调 CameraErrorCallback: 摄像头操作失败回调 权限: 功能模块(permissions) { // ... "permissions":{ // ... "Camera

详细的摄像头模组工作原理!!!

来源于:http://www.ccm99.com/thread-3492-1-1.html 作者:xubin341719(欢迎转载,请注明作者)." Y: @# [& h: n 一.摄像头工作原理 上一篇我们讲了摄像头模组的组成,工作原理,做为一种了解.下面我们析摄像头从寄存器角度是怎么工作的.如何阅读摄像头规格书(针对驱动调节时用到关键参数,以GT2005为例). 规格书,也就是一个器件所有的说明,精确到器件每一个细节,软件关心的寄存器.硬件关心的电气特性.封装等等.单单驱动方面,我们

HTML5实现IP Camera网页输出

HTML5实现IP Camera网页输出 这两天做OA项目.有一个要通过IP Camera将视频流输出到浏览器端的模块.尽管如今买到的摄像头都会提供浏览器和client的实现,可是一般来说都是仅仅支持IE浏览器.通过安装ActiveX控件的方式来实现的. IE实在太烂,而且仅仅能用IE还得安装控件.对用户体验非常不好,而且最新的Windows也抛弃了现有的IE浏览器,叫做Edge,取消了对ActiveX的支持,于是考虑到HTML5新支持的video标签来实现这项功能. 一.本机摄像头案例 首先上

RT5350的uvc驱动支持yuv格式摄像头成功

请尊重别人的劳动成果 转载请务必注明出处 今天在rt5350的板子上,成功将仅仅支持yuv格式的usb camera摄像头执行了.採用的是mjpeg streamer ,须要libjpeg库支持yuv. 能够执行后发现yuv格式的摄像头全然将cpu耗尽了. cpu使用情况

C语言高级应用---操作linux下V4L2摄像头应用程序

我们都知道,想要驱动linux下的摄像头,其实很简单,照着V4L2的手册一步步来写,很快就可以写出来,但是在写之前我们要注意改变系统的一些配置,使系统支持framebuffer,在dev下产生fb0这样的节点,这样我们才能在linux系统上操作Camera摄像头,framebuffer在之前的博文已经有说过了,这里就不再提了. 有需要了解framebuffer的那么请点击:http://baike.baidu.com/view/3351639.htm 最重要的,我们需要改一个脚本,在/dev/g