相机的实现
来源:互联网 发布:telnet 在端口23失败 编辑:程序博客网 时间:2024/06/09 18:14
public class CameraActivity extends Activity
{
private SurfaceView surfaceView;
private SurfaceHolder sh;
private boolean ispraw = false;
private Camera camera;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(getWindow().FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
sh = surfaceView.getHolder();
sh.addCallback(new callback());
sh.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
private class callback implements SurfaceHolder.Callback
{
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
}
@Override
public void surfaceCreated(SurfaceHolder holder)
{
try
{
camera = Camera.open();
camera.setPreviewDisplay(holder);
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(ImageFormat.JPEG);
parameters.setPreviewFpsRange(2, 10);
// parameters.setPreviewSize(480, 800);
// camera.setParameters(parameters);
camera.startPreview();
ispraw = true;
} catch (Exception e)
{
camera.release();
camera = null;
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder)
{
if (camera != null)
{
if (ispraw)
{
camera.stopPreview();
}
camera.release();
camera = null;
}
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (camera != null)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_SEARCH:
camera.autoFocus(new AutoFocusCallback()
{
public void onAutoFocus(boolean success, Camera camera)
{
if(success)
{
testTakePicture();
}
}
});
break;
case KeyEvent.KEYCODE_MENU:
// camera.autoFocus(null);
testTakePicture();
break;
default:
break;
}
}
return super.onKeyDown(keyCode, event);
}
public void testTakePicture()
{
camera.takePicture(null, null, callback);
}
Camera.PictureCallback callback = new PictureCallback()
{
@Override
public void onPictureTaken(byte[] data, Camera camera)
{
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
Toast.makeText(CameraActivity.this, "sdk", Toast.LENGTH_LONG).show();
return;
}
try
{
if (data != null)
{
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
FileOutputStream stream = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator + System.currentTimeMillis() + ".png");
bitmap.compress(CompressFormat.PNG, 85, stream);
stream.close();
camera.stopPreview();
camera.startPreview();
System.out.println("222222222222222222222222222");
}
} catch (Exception e)
{
e.printStackTrace();
}
}
};
}
- 相机的实现
- Android相机的实现
- AR相机的实现
- Android实现自定义的相机
- Android 相机 II-实现自己的相机APP
- OpenGL实现平滑的球面相机旋转
- OSG 实现跟随节点的相机
- OSG实现跟随节点的相机
- Unity3d实现相机的跟随缩放旋转
- Android实现一个自定义相机的界面
- 相机中白平衡的算法模拟实现
- 安卓自定义相机的实现
- unity 实现鼠标对相机的操作
- unity3d中实现相机的跟随
- 实现自定义相机(camera的使用)
- Camera使用-实现简单的自定义相机
- Camera Filter 美颜相机的实现
- 基于Unity3D的相机功能的实现(一)——VR相机
- SqlServer 触发器 A表中插入一行数据后动态在B表中插入A表中计算后数据
- hdu 3887 树状数组
- 堆排序(下)
- demoddd
- Java 内存分配全面浅析
- 相机的实现
- axis1.4 WebService架构搭建
- hdu 1043 Eight
- 在顶层容器中添加组件的方法
- 架构师最怕程序员知道的十件事
- 最短路径之spfa算法
- In Action(最短路+01背包)
- CTypedPtrList详细说明和具体用法
- Emace 文本操作