问题标签 [surfaceview]

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.

0 投票
1 回答
2184 浏览

android - 如何感知用户是否在屏幕上按住手指而不移动它?

我目前正在使用纯 OpenGL 以我自己的小方式绘制按钮。

我可以检测是否使用 onTouchEvent 按下按钮,但我想知道用户是否按住按钮,或者用户是否不再触摸屏幕。

0 投票
1 回答
4781 浏览

android - 具有动态位置的布局

我有一个可能有点不寻常的布局。结构如下:

我在 XML 底部的 customRelativeLayout 也有一个 XML 布局:

我的自定义相对布局:

我想要做什么:我希望能够改变我的 CustomRelativeLayout 的位置。它应该跟随我的触摸。它比 SurfaceView 小,应该在我触摸后“滑动”到上面......

有两个问题:

  1. 绑定到 mLinearLayout(在 CustomRelativeLayout 中)的 onTouchListener 仅触发一次,并且仅针对 ACTION_DOWN。我只看到一次日志输出
  2. 笔记永远不会改变位置,它永远不会用改变的矩阵重绘......我看到在onDraw触摸发生后从未出现过的输出。

首先可能是因为 SurfaceView 也处理触摸事件。但我认为如果 CustomRelativeLayout 先处理它,它应该可以工作。

一些想法?

编辑解决方案

多亏了 Xil3,我才能够移除我遇到的墙......这是我的解决方案:

我的笔记xml:

这是我的构造函数:

我还发现了一个错误/功能/问题,这对我来说绝对是新的:当我删除笔记根元素中的背景(当前是透明的)时,笔记仅在我在内部设置的 200dp 宽度/高度内可见线性布局。所以它不是fill_parent,它wrap_content就像我设置的那样fill_parent。因此layout_widthlayout_heightfill_parent在设置背景时使用给定的...奇怪...

0 投票
1 回答
455 浏览

android - SurfaceView 按键事件

我在将我的彩色计算机模拟器移植到 Android 上取得了很大进展。它适用于带有硬件键盘的 Droid 2,但我无法让虚拟键盘将 KeyEvents 发送到我的 SurfaceView 子类。我已将 setFocusable(true)、setFocusableInTouchMode(true)、requestFocus() 和 requestFocusFromTouch() 包含在此处根据建议的视图中。使用虚拟键盘时不会调用 onKeyUp 和 onKeyDown 方法。我尝试(尽管我不完全确定它是否有必要)实现 onCreateInputConnection 并返回一个新的 BaseInputConnection(以及相应的 onCheckIsTextEditor)但没有成功。

我正在使用 HTC Incredible 进行测试。任何帮助或示例代码将不胜感激。

谢谢。

0 投票
10 回答
131776 浏览

java - 扩展类时膨胀错误

我正在尝试创建一个GhostSurfaceCameraView扩展的自定义视图SurfaceView。这是我的类定义文件

GhostSurfaceCameraView.java

这是在我的 ghostviewscreen.xml 中:

现在在我做的活动中:

setContentView()被调用时,抛出异常:

谁能告诉我为什么会出现此错误?谢谢。

0 投票
2 回答
2244 浏览

android - 如何在 android 中编写滚动游戏相机?

我目前正在尝试用自上而下的视角编写一个简单的射击游戏。我正在使用 SurfaceView 和 Canvas 在屏幕上绘制图形,但我不知道如何使“相机”可滚动。玩家角色始终位于屏幕中央,并且相机(本质上是 SurfaceView 的画布)应该一直跟随他(例如,就像在 Alien Swarm 中一样)。但是,我无法弄清楚如何定期实现这一点。我现在这样做的方式是根据玩家的输入移动游戏世界中的所有其他对象 - 如果它们的坐标恰好在屏幕上,则绘制它们。玩家始终停留在相同的坐标上。有什么方法可以实际移动(滚动) SurfaceView 本身?我看到了 Scroll 小部件和 SurfaceView 方法。scrollBy(int x, int y),但我尝试实现其中任何一个都会导致强制关闭。任何帮助表示赞赏,在此先感谢!

PS 只是一个注释——我对在这个项目中使用 open GL 不感兴趣。

0 投票
1 回答
591 浏览

android - 如何将 keyEvent 对象传递给 Button 以使其看起来像被点击?

我已经制作了一个 SurfaceView 来接受 OnTouchEvent,在这个视图中,我使用 Button.draw(Canvas) 手动绘制了一个 Button(而不是创建 ViewGroup)。

现在,这个按钮可以在我的 SurfaceView 上绘制,但是当我将一个 keyEvent 从 OnTouchEvent 传递给像 Button.onTouchEvent(keyEvent) 这样的按钮时,但是这个按钮无法显示点击效果

所以问题是我如何将 keyEvent 手动传递给 View 并显示它在布局中显示的内容????

有什么想法吗?谢谢!!

0 投票
2 回答
7618 浏览

android - SurfaceView 到位图

我正在尝试将我的 SurfaceView(相机预览)转换为位图以进行动态人脸检测。我收到一个非空图像,但是当我将它显示到视图上时,它看起来是纯黑色的。任何想法可能是什么原因以及如何进行?

(我相信从 SurfaceView 中提取位图很困难但并非不可能 - 但没有人发布任何解决方案)

0 投票
1 回答
2420 浏览

android - 如何在不干扰 Android 坐标系的情况下旋转画布?

我正在尝试使用 canvas.rotate 旋转画布并同时在其上移动对象。问题是随着旋转,画布的坐标系也会旋转,所以我会遇到我的对象应该沿着 y 轴移动但 y 轴在 x 轴的位置上旋转的情况。这是一团糟。有没有办法解决这个问题?

0 投票
4 回答
6170 浏览

java - Android SurfaceHolder.unlockCanvasAndPost() 不会导致重绘

我正在使用 Android sdk 实现一个相当标准的应用程序,其中涉及使用 SurfaceView、SurfaceHolder、Callback 设置进行绘图。

在我的主线程(UI 线程)中,我没有绘制或处理 SurfaceHolder(或您使用它检索的画布)。

在一个单独的线程中,我有以下内容:

这段代码正在执行,没有抛出异常,也没有我能找到的负面影响;但是, unlockCanvasAndPost() 调用永远不会导致 onDraw() 被调用。

换句话说,unlockCanvasAndPost() 不会导致 SurfaceView 的重绘。

任何想法可能导致这种症状?我有大量的 java 经验,相当多的 android 经验,以及大量的调试经验,但无法追踪到这一点。

提前致谢。

0 投票
2 回答
826 浏览

android - 奇怪的布局问题。(请看附图)

替代文字

上图是我游戏的第一页。通常大的蓝色“按钮”背景图像不应该出现在那里。

我在布局文件中为按钮声明自定义背景图像,如下所示:

这是drawable文件夹中的button_bg.xml

如您所见。下面的三个按钮是正常情况。我在我的应用程序中到处使用它们。但有时屏幕中央的那个会出现。这个大按钮不能按下或任何东西。它就在我的游戏上方盘旋。我可以开始游戏,但显然看不到内容,因为这个蓝色的大东西覆盖了所有内容。

我可以通过多次启动/退出我的游戏来重现此错误。

我很乐意提供更多信息。但不知道我应该给你什么信息。我用来FrameLayout将 UI 放在 SurfaceView 之上。

而且大多数时候这个错误不会发生。在我启动/退出游戏并重复几次后,它似乎随机发生。

以前有人见过这样的东西吗?如果是这样,请告诉我您是如何解决的?