zoukankan      html  css  js  c++  java
  • android 照相机

    主activity

    public class MainActivity extends Activity implements OnClickListener{
        private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
        private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode
        private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode
    
        private String strImgPath = "";// 照片文件绝对路径
        private String strVideoPath = "";// 视频文件的绝对路径
        private String strRecorderPath = "";// 录音文件的绝对路径
    
        Button buttonShot;
        Button buttonVideo;
        Button buttonRecorder;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             buttonShot = (Button)findViewById(R.id.ButtonShot);  
             buttonShot.setOnClickListener(this);  
             buttonVideo = (Button)findViewById(R.id.ButtonVideo);  
             buttonVideo.setOnClickListener(this);  
             buttonRecorder = (Button)findViewById(R.id.ButtonRecorder);  
             buttonRecorder.setOnClickListener(this);  
        }
        /**
         * 照相功能
         */
        private void cameraMethod() {
            Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            strImgPath = Environment.getExternalStorageDirectory().toString()
                    + "/CONSDCGMPIC/";// 存放照片的文件夹
            String fileName = new SimpleDateFormat("yyyyMMddHHmmss")
                    .format(new Date()) + ".jpg";// 照片命名
            File out = new File(strImgPath);
            if (!out.exists()) {
                out.mkdirs();
            }
            out = new File(strImgPath, fileName);
            strImgPath = strImgPath + fileName;// 该照片的绝对路径
            Uri uri = Uri.fromFile(out);
            imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
            imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
            startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);
    
        }
    
        /**
         * 拍摄视频
         */
        private void videoMethod() {
            Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
            startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);
        }
    
        /**
         * 录音功能
         */
        private void soundRecorderMethod() {
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("audio/amr");
            startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);
        }
    
        /**
         * 提示信息
         * 
         * @param text
         * @param duration
         */
        private void showToast(String text, int duration) {
            Toast.makeText(MainActivity.this, text, duration).show();
        }
    
        @Override
        public void onClick(View v) {
            int id = v.getId();
            switch (id) {
            case R.id.ButtonShot:
                cameraMethod();
                break;
            case R.id.ButtonVideo:
                videoMethod();
                break;
            case R.id.ButtonRecorder:
                soundRecorderMethod();
                break;
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    
    }

    布局文件

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <ScrollView  
        xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <LinearLayout  
          android:orientation="vertical"  
          android:layout_width="fill_parent"  
          android:layout_height="fill_parent">  
          <Button  
            android:id="@+id/ButtonShot"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:text="拍照"/>  
          <Button  
            android:id="@+id/ButtonVideo"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:text="录像"/>  
          <Button  
            android:id="@+id/ButtonRecorder"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:text="录音"/>  
        </LinearLayout>  
    </ScrollView>  

    权限:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
        </uses-permission>
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
        </uses-permission>
        <uses-permission android:name="android.permission.GET_TASKS" >
        </uses-permission>
        <uses-permission android:name="android.permission.RECORD_AUDIO" >
        </uses-permission>
        <uses-permission android:name="android.permission.CAMERA" >
        </uses-permission>

     完成!

  • 相关阅读:
    ubuntu git配置文件,配置颜色,同义词
    A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS
    Lucene索引文件解析之“域”
    模2运算的原理
    Ubuntu aptcache命令查找可用软件包
    crc循环校验原理和实现
    python操作MySQL数据库
    异常:MessageBox.Show 容量超出了最大容量。参数名: capacity
    JavaScript中的 Dictionary 的用法
    IIS设置允许下载.h264文件解决方法
  • 原文地址:https://www.cnblogs.com/goldeneast/p/3363363.html
Copyright © 2011-2022 走看看