我正在编写一个Android 1.5应用程序,它在启动后启动.这是一个Service,应该拍照没有预览.此应用程序将记录某些区域的光密度.我能够拍照,但照片是黑色的.
经过长时间的研究,我遇到了一个关于它的bug线程.如果您不生成预览,则图像将为黑色,因为Android相机需要预览才能设置曝光和对焦.我创建了一个SurfaceView和听众,但onSurfaceCreated()事件永远不会被解雇.
我想原因是,表面没有在视觉上创造.我还看到了静态调用相机的一些例子,MediaStore.CAPTURE_OR_SOMETHING它们拍摄照片并用两行代码保存在所需的文件夹中,但它也没有拍照.
我是否需要使用IPC并bindService()调用此功能?或者是否有另一种方法来实现这一目标?
我正在尝试使用SurfaceTexture渲染相机预览.我阅读了该文档,但无法理解它是如何工作的.
任何人都可以提供一个示例示例(非常基本的)或使用SurfaceTexture预览相机的链接.我用谷歌搜索了这个,但找不到我要找的东西.
提前致谢.
我有一个应用程序,我正在使用Android相机拍照.我已经建立了自己的Android相机.按下按钮拍摄照片.
像这样的东西:
public void onClick(View arg0) {
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
}
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
if (imageData != null) {
Intent mIntent = new Intent();
Bundle b = new Bundle();
b.putByteArray("imageData", imageData);
Intent i = new Intent(mContext, ViewPhoto.class);
i.putExtras(b);
startActivity(i);
setResult(FOTO_MODE, mIntent);
finish();
}
}
};
Run Code Online (Sandbox Code Playgroud)
拍摄照片后,我使用intent并将字节发送到另一个活动.
最大的问题是,如果我通过按下按钮逐个拍摄几张照片,我的应用程序会在此行崩溃:
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
Run Code Online (Sandbox Code Playgroud)
这就是我的logcat的样子:
java.lang.RuntimeException: takePicture failed
at android.hardware.Camera.native_takePicture(Native Method)
at android.hardware.Camera.takePicture(Camera.java:746)
at android.hardware.Camera.takePicture(Camera.java:710)
at com.Xperiaproject.TakePhoto.onClick(TakePhoto.java:216)
at android.view.View.performClick(View.java:2534)
at android.view.View$PerformClick.run(View.java:9210)
at android.os.Handler.handleCallback(Handler.java:587)
at …Run Code Online (Sandbox Code Playgroud)