在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 拍照摄像 回放代码下载

android 拍照摄像 回放代码下载

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:2.59M
  • 下载次数:11
  • 浏览次数:175
  • 发布时间:2016-04-26
  • 实例类别:Android平台开发
  • 发 布 人:看你的微笑
  • 文件格式:.rar
  • 所需积分: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;
//    }
}

标签: 拍照 摄像

实例下载地址

android 拍照摄像 回放代码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警