基本信息
源码名称:android 拍照摄像 回放代码下载
源码大小:2.59M
文件格式:.rar
开发语言:Java
更新时间:2016-04-26
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
拍照摄像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; // } }