即时开发一个应用程序,允许用户拍照,然后它在后台做一些工作,但我遇到了一个问题,我已经硬编码图片大小到它,它导致错误在另一个手机上一个我正在使用和我假设它下降到手机不支持我硬编码的相机大小.
我已经在这里阅读了它,但答案是模糊的所有人一直说是使用getSupportedSizes方法,但我只是不知道如何处理它之后.
任何帮助将不胜感激.
我正在尝试创建cameraPreview,我在下面的代码"Camera.open()"中找到了
这个方法不可访问或不可用,没有这样的方法对象相机
可以访问.
有什么我应该做的,或者这是教程中的错误?
Java代码:
@Override
public void surfaceCreated(SurfaceHolder holder)
{
try
{
//Open the Camera in preview mode
this.camera = Camera.open();
this.camera.setPreviewDisplay(this.holder);
}
catch(IOException ioe)
{
ioe.printStackTrace(System.out);
}
}
Run Code Online (Sandbox Code Playgroud) 最近我写了一个Android应用程序,需要从相机中的构建中拍摄照片并将其恢复到我的应用程序中.我使用了许多教程中的一个,一切正常.但后来我在另一台设备上测试了它并没有任何功能.似乎有问题,所以我如何确保我可以在每台设备上拍照?(看我的回答,这更像是一个教程)
我正在尝试实现一个应用程序,当启动时,我的自定义视频录制屏幕自动启动视频录制,我自己的按钮停止录制和其他按钮.我所做的是设计按钮的布局,直到现在,但如何在后台添加视频录制屏幕..请帮助.
我不知道如何打开保存的图像并将其显示在gridView中.
我打算拍照:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null && file != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
Run Code Online (Sandbox Code Playgroud)
并且文件保存在/ data/data/package/files/...但是当我尝试打开文件并创建位图时,它总是返回null.
try {
is = this.getContentResolver().openInputStream(Uri.fromFile(f));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(is);}
Run Code Online (Sandbox Code Playgroud)
即使我使用decodeFile方法()我仍然有一个空位图.文件存在于data/data/...我检查了它.
我的问题是:我怎样才能得到不同的图片?
我最近开始玩Android的相机api.我正在使用面部检测和它的回调setFaceDetectionListener.我无法想了解如何转换faces[0].rect.centerX();和faces[0].rect.centerY()的东西,我可以使用在屏幕上喜欢走动该点为中心的脸图像.
任何人都可以帮助我理解如何从相机给出的coord系统转换为我可以用来设置我的活动元素的东西.
我正在尝试在我的应用中加入一些与相机相关的功能.我手动打开摄像头,并获得与预览流setPreviewCallback和startPreview.我不使用曲面来显示预览,但我确实将其设置为符合Camera API文档.这是我打开相机的方式:
public Camera openCamera(int id)
{
m_openedCamera = Camera.open(id);
m_surfaceHolder = new SurfaceView(MyApplication.instance().getApplicationContext()).getHolder();
Assert.assertNotNull(m_openedCamera);
m_openedCamera.setPreviewDisplay(m_surfaceHolder);
m_openedCameraFacing = facing;
if (m_openedCamera != null)
m_openedCamera.setPreviewCallback(this);
m_openedCamera.startPreview();
}
Run Code Online (Sandbox Code Playgroud)
这就是我发布它的方式,这里没什么好看的:
public void releaseCamera()
{
if (m_openedCamera != null)
{
m_openedCamera.stopPreview();
m_openedCamera.release();
m_openedCamera = null;
}
}
Run Code Online (Sandbox Code Playgroud)
它有点起作用,但是当我释放相机时,我得到一个异常"在释放后调用的方法()".澄清一下:相机发布后我不会调用任何相机方法.在调试器下进行双重和三重检查,我没有.我认为这里有混合的同步和异步调用会导致问题.
我使用Android中的Camera2 API从相机获取TotalCaptureResults对象.我正在使用预览,而不是单个图像.有没有办法从TotalCaptureResults获取bytes []?
谢谢.
我正在使用一个隐含的Intent来拍照.我一直在关注本教程中概述的工作.我遇到的问题是没有交付添加到Intent的额外内容.这是我正在使用的代码:
private void dispatchTakePictureIntent(Context context) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(context.getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile(this.getActivity());
} catch (IOException ex) {
Log.e(TAG, "Error creating file: " + ex.toString());
//TODO: 2017/1/24 - Handle file not created
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Error")
.setMessage(ex.toString());
final AlertDialog dialog = builder.create();
dialog.show();
} …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,我试图在移动视觉API的帮助下扫描条形码.我TextureView在我的活动中创建,所以我需要相机在`TextureView上渲染.
我一直在使用旧的相机API,只是遇到了新的camera2 API.谁能帮助我,他们之间有什么区别?