安卓使用系统相机拍照和录像

来源:互联网 发布:赵本山书法 知乎 编辑:程序博客网 时间:2024/05/20 09:45

package alice.bw.com.camerademo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);}public void onClick(View view){    Intent intent = new Intent();    switch (view.getId()) {        case R.id.but_01:            //录像页面            intent.setClass(this,CameraVodeoActivity.class);            break;        case R.id.but_02:            //拍照页面            intent.setClass(this,CameraImageActivity.class);            break;    }    startActivity(intent);}

}

//下面是拍照的demo
package alice.bw.com.camerademo;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;

import java.io.File;

public class CameraImageActivity extends AppCompatActivity {
private ImageView my_iv;
private String imgPath;

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_camera_image);    my_iv = (ImageView) findViewById(R.id.my_iv);    imgPath = getExternalCacheDir().getAbsolutePath()+"liuchao.png";}public void camera(View view){    switch (view.getId()){        case R.id.camera_but_01://调用系统的摄像机            Intent intent = new Intent();            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//系统相机            startActivityForResult(intent,1);            break;        case R.id.camera_but_02:            Intent intent1 = new Intent();            intent1.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//系统相机            Uri uri = Uri.fromFile(new File(imgPath));            intent1.putExtra(MediaStore.EXTRA_OUTPUT,uri);            startActivityForResult(intent1,2);            break;    }}//接收回传值得@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if(requestCode == 1 && resultCode == RESULT_OK){        if(data!=null){            Bundle bundle = data.getExtras();            Bitmap bitmap = (Bitmap) bundle.get("data");            my_iv.setImageBitmap(bitmap);        }    }    if(requestCode == 2 && resultCode ==RESULT_OK){        //图片的参数        BitmapFactory.Options options = new BitmapFactory.Options();        //true 对图片不做真正的解码处理        options.inJustDecodeBounds = true;        //获取原始的宽 高        int outWith = options.outWidth;        int outHegth = options.outHeight;        int newWith = outWith/500;        int newHeight = outHegth/500;        //拿到一个缩放比例        int sufbl = Math.max(newWith,newHeight);        //设置缩放比例        options.inSampleSize = sufbl;        //false 做真正的解码处理        options.inJustDecodeBounds = false;        //将路径转为bitmap        Bitmap bitmap = BitmapFactory.decodeFile(imgPath,options);        my_iv.setImageBitmap(bitmap);    }}

}
//录像
package alice.bw.com.camerademo;

import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.media.ThumbnailUtils;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.VideoView;

public class CameraVodeoActivity extends AppCompatActivity {
private VideoView mVv;

//第二部分private ImageView mIv;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_camera_vodeo);    mVv = (VideoView) findViewById(R.id.my_vv);    mIv = (ImageView) findViewById(R.id.my_iv);}public void camera(View view) {    Intent intent = new Intent();    intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);//录像    startActivityForResult(intent,100);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if(requestCode == 100 && resultCode==RESULT_OK){        Uri uri = data.getData();        Cursor cursor = getContentResolver().query(uri,null,null,null,null);        if(cursor.moveToFirst()){            String path = cursor.getString(cursor.getColumnIndex("_data"));            mVv.setVideoURI(Uri.parse(path));//播放的资源            mVv.setMediaController(new MediaController(this));            mVv.start();//开始播放            //制作缩略图            Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(path,MediaStore.Video.Thumbnails.MINI_KIND);            mIv.setImageBitmap(bitmap);        }    }}

}

阅读全文
0 0
原创粉丝点击