Camera(一)使用SurfaceView和Camera类实现拍照
来源:互联网 发布:航信数据维护 编辑:程序博客网 时间:2024/06/04 13:07
SecondActivity>java
package com.example.administrator.myapplication;import android.app.Activity;import android.content.Intent;import android.hardware.Camera;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.Window;import android.widget.Toast;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;/** * Created by Administrator on 2015/9/21. */public class SecondActivity extends Activity { private SurfaceView surfaceview; private Camera camera; private SurfaceHolder.Callback cameraPreviewCallBack = new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { startPreview(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { stopPreview(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); surfaceview = (SurfaceView) findViewById(R.id.camera_surfaceview); surfaceview.getHolder().addCallback(cameraPreviewCallBack); findViewById(R.id.btnTakePicture).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { camera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { String path = null; if ((path = savaTempFile(data)) != null) { Intent intent = new Intent(SecondActivity.this, ImageViewActivity.class); intent.putExtra("path", path); startActivity(intent); } else { Toast.makeText(SecondActivity.this, "没有保存照片", Toast.LENGTH_SHORT).show(); } } }); } }); } private String savaTempFile(byte[] bytes) {//保存临时文件 try { File f = File.createTempFile("img", "");//创建临时文件 FileOutputStream fos = new FileOutputStream(f); fos.write(bytes); fos.flush(); fos.close(); return f.getAbsolutePath(); } catch (IOException e) { e.printStackTrace(); } return null; } private void startPreview() { camera = Camera.open(); try { camera.setPreviewDisplay(surfaceview.getHolder()); camera.setDisplayOrientation(90); camera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } private void stopPreview() { camera.stopPreview(); camera.release(); }}
ImageViewActivity.Java
package com.example.administrator.myapplication;import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.widget.ImageView;import java.io.File;/** * Created by Administrator on 2015/9/21. */public class ImageViewActivity extends Activity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); imageView = new ImageView(this); setContentView(imageView); String path = getIntent().getStringExtra("path"); if (path != null) { imageView.setImageURI(Uri.fromFile(new File(path))); } }}
0 0
- Camera(一)使用SurfaceView和Camera类实现拍照
- Android实现拍照功能,使用SurfaceView+camera
- Surfaceview调用Camera实现拍照
- 使用Camera与SurfaceView实现自定义拍照功能
- 使用Camera实现拍照
- Android Camera+SurfaceView实现自定义拍照
- 使用SurfaceView+Camera模仿照相机拍照功能
- 使用surfaceview实现camera时,出现拍照后照片花屏问题
- 通过Camera、SurfaceView、自己实现拍照及预览效果
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- 玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo
- Android Camera拍照实现
- hihoCoder 1236 Scores(2015 北京网赛 J)
- Peeking Iterator
- CoreText<1>
- C语言指针理解到深入(1)
- Django 通用视图
- Camera(一)使用SurfaceView和Camera类实现拍照
- Create Command Line Tools
- 数据库之创建表&向表中插入数据
- Codeforces #320 Div1 解题报告
- C# web 链接数据库问题二三(一)
- Hadoop 笔记之shuffle详解过程
- "不忍直视"的ViewHolder模式
- dockerfile 创建 ssh 镜像
- 四种Toast的简单代码