基本信息
源码名称:android 拍照摄像 回放代码下载
源码大小:2.59M
文件格式:.rar
开发语言:Java
更新时间:2016-04-26
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍

拍照摄像2合一,可以回看最新的照片和视频

package com.otk.camera;

import java.io.File;
import java.util.Timer;
import java.util.TimerTask;

import com.otk.camera.MyVPView.OnRecordFinishListener;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity {
	
	private ImageButton ib_change,ib_work;
	private Button btn_view;
	private MyVPView mysf;
	private ImageView iv_live;
	private TextView tv_mm,tv_maohao,tv_ss;
	private boolean live=false,flag=true;//flag=true为拍照,false为摄像
	private Timer mTimer;
	private int timeCount;
	private long number=0;
	private Handler handler;
	private String path_photo="",path_video="";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ib_change=(ImageButton) findViewById(R.id.ib_change);
		ib_work=(ImageButton) findViewById(R.id.ib_work);
		mysf=(MyVPView) findViewById(R.id.mysurfaceview);
		iv_live=(ImageView) findViewById(R.id.live);
		tv_mm=(TextView) findViewById(R.id.tv_time_mm);
		tv_maohao=(TextView) findViewById(R.id.tv_time_maohao);
		tv_ss=(TextView) findViewById(R.id.tv_time_ss);
		btn_view=(Button) findViewById(R.id.btn_view);
		findimage();
		handler=new Handler(){
			
			public void handleMessage(Message msg) {
				switch (msg.what) {
				case 0:
					int ss=msg.arg1%60;
					int mm=msg.arg1/60;
					if(mm>=10){
						tv_mm.setText("" mm);
					}else{
						tv_mm.setText("0" mm);
					}
					if(ss>=10){
						tv_ss.setText("" ss);
					}else{
						tv_ss.setText("0" ss);
					}
					break;

				default:
					break;
				}
			};
		};
		
	}
	public void onClick(View view){
		switch (view.getId()) {
		case R.id.ib_change:
			flag=!flag;
			if(flag){
				ib_work.setBackgroundResource(R.drawable.pai);
				findimage();
			}else{
				ib_work.setBackgroundResource(R.drawable.start);
				findmp4();
			}
			break;
		case R.id.ib_work:
			if(flag){
				mysf.takePhoto();
			}else{
				if(!live){
					ib_change.setEnabled(false);
					mysf.record(new OnRecordFinishListener() {
						
						@Override
						public void onRecordFinish() {
							// TODO Auto-generated method stub
							timeCount=-1;
							iv_live.setVisibility(View.VISIBLE);
							tv_maohao.setVisibility(View.VISIBLE);
							mTimer=new Timer();
							mTimer.schedule(new TimerTask() {
								
								@Override
								public void run() {
									// TODO Auto-generated method stub
									timeCount  ;
									Message msg=new Message();
									msg.what=0;
									msg.arg1=timeCount;
									handler.sendMessage(msg);
								}
							}, 0,1000);
							ib_work.setBackgroundResource(R.drawable.stop);
							live=true;
						}
					});
				}else{
					ib_change.setEnabled(true);
					mTimer.cancel();
					iv_live.setVisibility(View.INVISIBLE);
					tv_maohao.setVisibility(View.INVISIBLE);
					tv_mm.setText("");
					tv_ss.setText("");
					mysf.stop();
					ib_work.setBackgroundResource(R.drawable.start);
					findmp4();
					live=false;
				}
			}
			break;
		case R.id.btn_view:
			if(flag){
				Intent intent1=new Intent(Intent.ACTION_VIEW);
				findimage();
				intent1.setDataAndType(Uri.fromFile(new File(path_photo)), "image/*");
				startActivity(intent1);
			}else{
				Intent intent2=new Intent(Intent.ACTION_VIEW);
				findmp4();
				intent2.setDataAndType(Uri.fromFile(new File(path_video)), "video/mp4");
				startActivity(intent2);
			}
			break;

		default:
			break;
		}
	}
	private void findmp4(){
		File Dir = new File(Environment.getExternalStorageDirectory()   File.separator "MyVideo"); 
		if (!Dir.exists()) {  
            Dir.mkdirs();  
        } 
		File[] files=Dir.listFiles();
		if(files.length>0){
			path_video=files[0].getAbsolutePath();
			String s1=files[0].getName().substring(0, files[0].getName().lastIndexOf("."));
			number=Long.valueOf(s1);
			for (File file : files) {
				String s2=file.getName().substring(0, file.getName().lastIndexOf("."));
				long n=Long.valueOf(s2);
				if(n>number){
					number=n;
					path_video=file.getAbsolutePath();
				}
			}
		}
		if(path_video.equals("")){
			btn_view.setEnabled(false);
		}else{
			btn_view.setEnabled(true);
		}
	}
	private void findimage(){
		File Dir = new File(Environment.getExternalStorageDirectory()   File.separator "MyPhoto"); 
		if (!Dir.exists()) {  
			Dir.mkdirs();  
		} 
		File[] files=Dir.listFiles();
		if(files.length>0){
			path_photo=files[0].getAbsolutePath();
			String s1=files[0].getName().substring(0, files[0].getName().lastIndexOf("."));
			number=Long.valueOf(s1);
			for (File file : files) {
				String s2=file.getName().substring(0, file.getName().lastIndexOf("."));
				long n=Long.valueOf(s2);
				if(n>number){
					number=n;
					path_photo=file.getAbsolutePath();
				}
			}
		}
		if(path_photo.equals("")){
			btn_view.setEnabled(false);
		}else{
			btn_view.setEnabled(true);
		}
	}
//	public Bitmap getVideoThumbnail(ContentResolver cr, String path) {
//        Bitmap bitmap = null;
//        BitmapFactory.Options options = new BitmapFactory.Options();
//        options.inDither = false;
//        options.inPreferredConfig = Bitmap.Config.RGB_565;
//        //select condition.
//        String whereClause = MediaStore.Video.Media.DATA   " = '"
//          path   "'";
//        //colection of results.
//        Cursor cursor = cr.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
//                new String[] { MediaStore.Video.Media._ID }, whereClause,
//                null, null);
//        if (cursor == null || cursor.getCount() == 0) {
//            return ThumbnailUtils.createVideoThumbnail(path, MediaStore.Video.Thumbnails.MINI_KIND);
//        }
//        cursor.moveToFirst();
//        //image id in image table.
//        String videoId = cursor.getString(cursor
//                .getColumnIndex(MediaStore.Video.Media._ID));
//        if (videoId == null) {
//            return ThumbnailUtils.createVideoThumbnail(path, MediaStore.Video.Thumbnails.MINI_KIND);
//        }
//        cursor.close();
//        long videoIdLong = Long.parseLong(videoId);
//        //via imageid get the bimap type thumbnail in thumbnail table.
//        bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, videoIdLong,
//                Images.Thumbnails.MICRO_KIND, options);
//        return bitmap;
//    }
}