我有一个摩托罗拉Defy OS Android 2.1,我用相机预览版制作了一个应用程序.问题是相机在搭载Android 2.1的三星Galaxy S上工作正常,但在摩托罗拉上,相机旋转90度.我试过这样做:
Parameters parameters = camera.getParameters();
parameters.setRotation(90);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我还没有找到任何解决方案.
目前正在开展一个关于Android相机的项目,这个项目需要我在实时预览期间或拍摄照片后检测某些颜色.
我已成功设置了带有实时预览功能的相机,但我目前仍然坚持检测颜色.例如,我想在相机的实时预览期间检测绿色并向用户发送反馈.它不一定需要在实时预览期间完成,因为我一直在考虑拍摄照片,然后可以更容易地完成颜色检测.
我是一个关于android编程的完整新手,所以关于如何编写颜色检测算法的任何方向都将非常感激!
我已经在Android上编写了一个相机应用程序,我已经在两部Android手机上测试了它,在一部手机上预览时自动曝光效果很好但在另一部手机上根本不起作用.第一部手机只在我调用autoFocus()方法时才有效.在后一部手机上,内置应用程序的自动曝光有效,但不是我的代码.有没有可以手动开始使用自动曝光的方法?
我想用在Android中intent打开.camera
我使用了以下代码但是当我按下button(其动作是onclick()功能时,应用程序自行关闭.
public void onclick(int actionCode){
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, actionCode);
}
public static boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮助我.
我有一个关于如何使用相机意图(或相机API)拍摄图像的问题,然后将图像带入imageView,以便在我的应用程序中显示.这就是我到目前为止所拥有的.
我设置了一个按钮
Button btnPicture = (Button) findViewById(R.id.btn_picture);
btnPicture.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
我设置了一个Camera方法
private void Camera() {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE_CODE);
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
这就是我迷失的地方.我正在尝试处理我拍摄的图像.
private void processImage(Intent intent) {
setContentView(R.layout.imagelayout);
ImageView imageView = (ImageView)findViewById(R.id.image_view);
cameraBitmap = (Bitmap)intent.getExtras().get("data");
imageView.setImageBitmap(cameraBitmap);
}
Run Code Online (Sandbox Code Playgroud)
我的目的是显示你在image_view中拍摄的图像.我没有收到错误,没有任何反应.当我拍照时,我被要求拍摄另一张照片,或者在我使用设备后退按钮后,应用程序强制关闭.似乎我完全退出了我的应用程序,返回是一个大问题.有什么建议?我错过了什么?
是的,这是我的onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(TAKE_PICTURE_CODE == requestCode) {
Bundle extras = data.getExtras();
if (extras.containsKey("data")) {
Bitmap bmp = (Bitmap) extras.get("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Camera的PreviewCall返回(onPreviewFrame)使用MediaCodec对每秒30帧的视频进行编码.我编码的视频总是播放得非常快(这是不可取的).所以,我试图通过设置一个int frameCount变量来检查进入我相机预览的帧数,以记住它的计数.我期待的是每秒30帧,因为我将相机的预览设置为30 fps预览(如下所示).我回来的结果是不一样的.我调用onPreviewFrame回调10秒钟,我得到的帧数量只有大约100帧.这很糟糕,因为我期待300帧.我的相机参数设置正确吗?这是Android的Camera预览回拨的限制吗?如果这是对Android相机预览回调的限制,那么还有其他相机回调能够以每秒30帧的速度返回相机的图像数据(nv21,yuv,yv12)吗?
感谢您阅读并花时间去帮忙.我将不胜感激任何评论和意见.
以下是使用Camera的onPreviewFrame编码视频的示例:
http://www.youtube.com/watch?v=I1Eg2bvrHLM&feature=youtu.be
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
parameters.setPictureSize(previewWidth,previewHeight);
parameters.setPreviewSize(previewWidth, previewHeight);
// parameters.setPreviewFpsRange(30000,30000);
parameters.setPreviewFrameRate(30);
mCamera.setParameters(parameters);
mCamera.setPreviewCallback(previewCallback);
mCamera.setPreviewDisplay(holder);
Run Code Online (Sandbox Code Playgroud) 我想知道相机的视角,就像在这个问题中,但使用android.hardware.camera2.如何使用新的camera2库重现下一个代码.
Camera.Parameters p = camera.getParameters();
double thetaV = Math.toRadians(p.getVerticalViewAngle());
double thetaH = Math.toRadians(p.getHorizontalViewAngle());
Run Code Online (Sandbox Code Playgroud)
有没有办法做同样的事情?
我试图减少拍摄反射表面的照片或视频时产生的眩光; 窗户,眼镜或其他移动设备.
我已经对这个主题做了一些研究,似乎存在一些算法.但我还没有找到一个编码实现.
我需要这个的原因是因为我正在创建一个应用程序,允许您使用设备上的相机在其他设备屏幕上阅读不同的颜色.如果有很多眩光,颜色将无法正确读取.它需要能够区分16种颜色.
是否有任何现有的实现,如果是,我将如何在Android中实现它们?
我知道这个问题之前已被问过,但已经很久了.再次提出这个问题来收集任何新的黑客/想法/方法.
我需要同时访问前后摄像头.
到目前为止,我已经尝试使用Android相机API(双镜头 - 由Jens)和camera2 API实现.两种实现在具有硬件支持的设备(双图像信号处理器)上都可以正常工作,用于双摄像头功能.我已经测试过,两种实现在HTC one M8(Snapdragon 801)和Xiaomi Mi4(Snapdragon 801)上都能正常工作.
即使它具有硬件功能(Exynos 7420具有双ISP),这两种实现都在三星s6上失败.此外,S6上的默认相机应用程序支持双相机模式.
关于这个的任何想法/建议?
提前致谢.
更新:2015年11月18日 - >尝试使用三星Galaxy Camera SDK,但仍然没有运气.
我正在做一个按钮点击扫描条形码的应用程序,它可以正常工作到Lollipop版本.当我来到棉花糖时,它停止了工作.这是错误:
camerabase连接到相机0时发生错误
它迫使我通过以下方式开启许可:
设置 - >应用程序 - >我的应用程序 - >相机.
我的问题是如何在Marshmallow中自动允许我的应用程序使用相机,或者要求用户在运行时打开相机.屏幕截图:
android barcode android-camera android-6.0-marshmallow runtime-permissions