首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android仿真器摄像头-摄像头定位

Android仿真器摄像头-摄像头定位
EN

Stack Overflow用户
提问于 2017-04-25 08:37:26
回答 2查看 7.7K关注 0票数 18

我正在使用我的Mac摄像头来模拟器中的Android摄像头。不幸的是,相机似乎在景观方向- 屏幕截图,即使仿真器是在肖像之一。

注意,相机在一个真实的设备上运行正常(即它有一个纵向方向)。

我的仿真器配置:Nexus5X,AndroidNugat7.1.1,API 25级,启动方向:纵向,前置摄像头: webcam0,后置摄像头:模拟

如何使用具有正确定位的网络摄像头?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-23 22:37:33

最终,我通过检测是否运行在模拟器中解决了这一问题:

代码语言:javascript
复制
public static boolean isEmulator() {
  return Build.FINGERPRINT.startsWith("generic")
    || Build.FINGERPRINT.startsWith("unknown")
    || Build.MODEL.contains("google_sdk")
    || Build.MODEL.contains("Emulator")
    || Build.MODEL.contains("Android SDK built for x86")
    || Build.MANUFACTURER.contains("Genymotion")
    || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
    || "google_sdk".equals(Build.PRODUCT);
}

然后将转换应用于预览纹理:

代码语言:javascript
复制
Matrix matrix = new Matrix();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Point displaySize = new Point();
display.getRealSize(size);
RectF viewRect = new RectF(0, 0, mCameraPreview.getWidth(), mCameraPreview.getHeight());
float centerX = viewRect.centerX();
float centerY = viewRect.centerY();
float scale = (float) mCameraPreview.getWidth() / (float) displaySize.x;
matrix.postScale(scale, scale, centerX, centerY);
matrix.postRotate(270, centerX, centerY);
mCameraPreview.setTransform(matrix);
票数 9
EN

Stack Overflow用户

发布于 2020-06-17 12:33:44

我在仿真器上启用了自动旋转功能,然后将仿真器转换为美化模式,它起作用了.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43605591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档