问题标签 [surfaceholder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 安卓相机方向
我正在尝试从这篇文章中学习增强现实基础知识:http: //www.devx.com/wireless/Article/42482/0/page/2
当它运行时,相机采用相反的方向。我的问题是如何使用相机获得固定和正常的视图。这是 CustomCameraView 类:
我应该在参数上添加另一种方法吗?
对不起,我的英语不好。谢谢你。
问题就是这样解决的。
添加 :
android - 在 Android 中的相机覆盖期间发生“错误 1”
我创建了一个具有 SurfaceView 和 SurfaceHolder 的 Activity 以创建相机叠加层。出于某种原因,我在 ADB 中得到以下信息:04-08 10:54:06.747: E/Camera(1152): Error 1。我可以拍照,但无法进行任何预览。这是我正在使用的代码:
}
这是布局:
我尝试将其更改为 RelativeLayout 但无济于事。我真的认为我错过了一些简单的事情。任何帮助是极大的赞赏。谢谢!
android - SurfaceView 绘图失败
我正在尝试一个具有SurfaceView
. 我继承了我的类SurfaceView
并使用如下:
我正在从以下更新我Canvas
的Thread
:
当应用程序启动并被onDraw()
调用时,它也会绘制圆圈和文本,但在进一步调用onDraw()
它时不会绘制任何内容。表示第一次更新后屏幕上没有任何变化。知道我哪里错了吗?我是安卓新手,学习速度也很慢。
android - Draw text on SurfaceHolder
I am doing an application witch uses the webcam and i want to display some text after the picture is taken so in the method ShutterCallBack i wrote this
It fails awfuly terminating my application...How can i write text on the surface ?
android - 在 SurfaceView 中显示 CameraPreview 和自定义视图
我遇到以下问题:我目前正在使用 SurfaceHolder 在 SurfaceView 上显示 CameraPreview,如此处所述Camera Dev Guide。所以它提到我必须像这样设置我的 SurfaceHolder 的类型;
不幸的是,该设置mHolder.lockCanvas()
将失败,因此我无法再在该画布上绘图。是否有可能在一个 SurfaceView 上绘制 PreviewFrame 以及自己的 View?
如果不是,是否可以渲染两个 SurfaceView,以便相机将用作背景,而第二个 SurfaceView 将渲染其任何“在顶部”的视图?让它运行的最佳方法是什么?
android - 是关于增强现实还是相机预览?
我有一点小小的询问,请不要低估它。
我有一个实现 Render 的类,另一个 CLass 实现了 Surface.callback。
当我运行实现surface.Callback的类时,我设法显示相机预览。
当我运行实现渲染的类时,我设法显示 3D 形状。
现在,我想在相机预览上显示 3D 形状。
我的问题是,我应该学习和阅读什么来实现这一目标?是关于增强现实的吗?
或者我只需要了解更多相机预览的工作原理?
您的回答将是有意义的并受到高度赞赏。
android - 来自 lockCanvas 方法的游戏循环中的偶尔卡顿/滞后
我以给定的速度平滑滚动位图。我正在使用游戏循环来执行此操作。它滚动非常流畅,大约 60 fps,除了偶尔的口吃/跳跃。这些跳跃发生在任何地方,从每秒一次到每秒几次。通常它们在运行几秒钟后开始或变得更加频繁,但我不确定这是否是一个大线索。
跳跃的原因是偶尔运行循环的迭代会花费大约两倍的时间,因此位图会在一个地方停留一段时间,然后进一步跳跃以赶上并保持其恒定速度。我使用插值根据经过的时间计算每次更新时位图的新位置。当经过比平时更长的时间时,我尝试进行几次小型更新,而不是一次移动整个距离,但暂停的位图仍然非常明显。
我运行了 traceview,额外的时间花在了 lockCanvas 中。大多数情况下,此方法大约需要 10 毫秒,但在这些较长的情况下,大约需要 24 毫秒。当我追踪四秒钟时,这种情况发生了 7 次。
在下面的代码中,如果它运行得很快,我会让它睡一会儿,但这实际上并没有什么区别。如果我摆脱那部分代码,我的问题就没有解决。不需要恒定的帧速率,因为我只是根据经过的时间来计算位置。
updatePhysics() 和 doDraw() 的代码做了一些数学运算,我试图让它尽可能高效。基本上他们只是根据时间和速度计算位图的新位置。我只有一个位图,并且不会每次都重新分配它或类似的东西。
另外,我很肯定我的surfaceHolder 已经准备好了,所以我从谷歌搜索中找到的常见答案不是重复调用未准备好的surfaceHolder 已被限制。
有什么想法可能导致这种情况吗?我的表面支架使用 PixelFormat.RGB_565 并且我的位图被编码为 Bitmap.Config.RGB_565 如果这有所不同。我最初是从我制作的相对布局中获得位图的。
android - 带有 XML 布局的 android Surface View 并将按钮添加到 Canvas
所以我用画布做了一个表面视图,所以我可以做一些图形。有没有办法在画布上进行 xml 布局,所以我可以有按钮,屏幕上没有什么,或者有没有其他选项可以在画布上制作按钮?
android - SurfaceView:dequeueBuffer 在 Android 4.0 上失败
我正在构建一个动态壁纸,它有一个全高清分辨率的位图,它被缩小到用户手机屏幕的大小。它在 Android 2.2 和 2.3 上完美运行,但在 4.0 上崩溃。
编辑 :
我使用 try/catch 将问题缩小了一点,发现它从我的 run() 方法开始。使用该 MacGyver 修复程序,它会运行大约 20 秒,淹没以下错误消息,然后崩溃:
这是我的 run() 方法:
编辑 2:
会不会跟模拟器有关系?我现在无法访问 Android 4 设备,所以这就是我所拥有的。
android - 壁纸因错误而崩溃 - queueBuffer:SurfaceTexture 的错误队列缓冲区
动态壁纸崩溃,代码如下
崩溃并出现以下错误
06-07 19:49:09.143:E/SurfaceTextureClient(13629):queueBuffer:错误队列缓冲区到 SurfaceTexture,-19
06-07 19:49:09.143: E/SurfaceTextureClient(13629): queueBuffer (handle=0x1c1b30) 失败(没有这样的设备) 06-07 19:49:09.143: W/dalvikvm(13629): threadid=11: 线程退出未捕获的异常(组=0x40c671f8)06-07 19:49:09.143:E/AndroidRuntime(13629):致命异常:线程 692
06-07 19:49:09.143: E/AndroidRuntime(13629): java.lang.IllegalArgumentException
06-07 19:49:09.143:E/AndroidRuntime(13629):在 android.view.Surface.unlockCanvasAndPost(本机方法)
06-07 19:49:09.143: E/AndroidRuntime(13629): 在 com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost(BaseSurfaceHolder.java:215)
提前致谢