问题标签 [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 回答
5499 浏览

android - 我在使用每个 Android 图形/SurfaceView 教程时都遇到了问题

我正在尝试学习如何在 Android 上制作视频游戏,因此我需要一些体面的教程来了解如何使用 SurfaceView 对象在 Android 上制作图形。然而,我尝试过的每一个图形教程(主要是 SurfaceView 的东西)都失败了。请注意,我不想使用 XML,因为它超出了我的元素,而 Google 只想在整洁的广告上推销这种技术,我可以通过编程方式做到这一点。

我遇到的一个主要问题是,有很多教程,无论是来自谷歌还是来自第三方,都包含使用 import android.opengl.GLSurfaceView 命令的代码,或者导入一个子集 GLSurfaceView,而这在我的 IDE 上永远不起作用. 每次我尝试导入其中任何一个时,Eclipse 都想说它基本上无法识别该包。奇怪的是我可以导入 android.opengl.*,尽管这仍然会导致这些包中的一些代码引用无法识别的类型和/或方法。

在尝试解决第一个问题一段时间后,我注意到 Lunar Lander 示例没有尝试导入这两个问题库中的任何一个。因此,我将代码和引用的资源提取到我的一个婴儿项目中,而该项目中的其他所有内容都未使用。当然,我确实更改了 Lunar Lander 代码所在的包并更改了 LunarLander.java 中的类名或其他任何内容,但这无关紧要。我能够得到在 Eclipse 中构建的东西。但是,当我去运行它时,它只会崩溃。没有显示任何月球着陆器图形或任何东西,模拟器只会给我这个错误消息,基本上是说我的应用程序意外停止工作并让我关闭应用程序。

1) opengl.GLSurfaceView 包的问题是什么?2)月球着陆器的例子是什么?3) 哪里有关于如何为 Android 制作视频游戏的优秀、坚定的教程

谢谢。

0 投票
2 回答
991 浏览

java - 我应该将 OpenGL 用于带动画的国际象棋吗?

目前,我正在为我的国际象棋游戏使用 SurfaceView 进行动画实验。我在模拟器中只得到大约 8 FPS。我画了一个棋盘和 32 个棋子并旋转所有东西(看看它有多平滑),我正在使用抗锯齿。在 Droid 上,我得到了大约 20FPS,所以它不是很流畅。是否可以在不使用OpenGL的情况下实现具有非常稀缺和简单动画的游戏?

这就是我每帧所做的:

0 投票
1 回答
1191 浏览

android - 从其他活动返回后,android surfaceview 不再可见

我在开发一些android程序时有一个问题......

我使用surfaceview进行相机预览。它工作正常,但是当我开始其他活动(通过单击某物)然后从该活动返回时有一个问题。之后,surfaceview 不再可见。(但 onclicklistener 正在工作)

但是当我在单个活动中发生由可见/不可见表面视图创建/破坏的表面时,它工作得非常好。

请给我任何帮助。

0 投票
1 回答
1659 浏览

android - Android游戏在按下home键并重新启动后变为空白

我正在使用一个名为 Game 的 Activity、一个名为 GameView 的 SurfaceView 和一个名为 GameThread 的线程制作一个 Android 游戏。游戏的onCreate(),我新建了一个GameView,新建了一个GameThread,所有的游戏逻辑和画布绘制都在这里进行。

但是,我遇到了一些生命周期困难。当我按下并重新启动它时,它工作正常,但是当我按下主页并重新启动它时,我看到的只是一个空白屏幕。下面是 GameView 的 onSurfaceCreated() 和 onSurfaceDestroyed():

0 投票
1 回答
2595 浏览

android - 如何使 SurfaceView 始终水平?

我正在使用 SurfaceView 使用画布绘制一些东西。问题是我想默认水平显示所有内容并保持这种状态,而不管设备的位置如何。我没有使用任何布局 XML 文件来显示 SurfaceView;相反,我只有一个扩展 SurfaceView 的类,我会setContentView(new Panel(this));展示它。

谢谢你的帮助。

0 投票
1 回答
1169 浏览

android - Android:横向模式下的帧率下降

我正在尝试(最新的)Android SDK,并注意到一些奇怪的行为。

我编写了一个骨架 SurfaceView 应用程序:Activity、SurfaceView 和一个渲染线程。它实际上并没有做任何绘画,并且每秒只将帧率写入 logcat 一次。当它以纵向模式运行时,我得到大约 60 fps。但是,当我将其翻转为横向时,帧速率会下降到大约 30 fps。

我还在 LunarLender 样本上对其进行了测试,并得到了类似的结果。所有的测试都是在模拟器上完成的,因为我没有物理设备。

这到底是怎么回事?我似乎在谷歌上找不到任何提及这一点,有其他人经历过吗?它只是一个模拟器怪癖还是它也适用于物理硬件?

0 投票
3 回答
101903 浏览

android - 如何在 Android 上的 Camera 使用的 SurfaceView 上绘制叠加层?

我有一个简单的程序,可以将预览绘制CameraSurfaceView. 我正在尝试使用该onPreviewFrame方法,每次将新框架绘制到 中时都会调用该方法SurfaceView,以便执行invalidate应该调用该方法的onDraw方法。实际上,onDraw正在调用该方法,但没有打印任何内容(我猜相机预览正在覆盖我要绘制的文本)。

SurfaceView这是我拥有的子类的简化版本:

0 投票
4 回答
7906 浏览

android - 当显示虚拟键盘并涉及 SurfaceView 时,Android 的 EditText 被隐藏

我有一个简单的用户界面:EditText 应该位于 SurfaceView 下方。我使用RelativeLayout 来排列这两个视图。

现在,当我点击 EditText 打开虚拟键盘时,SurfaceView 向上滑动,但 EditText 被隐藏并且不显示键入的字符串。

要重现,请使用以下布局 XML 代码:

主 Activity 类只需要显示布局。当我启动程序并点击 EditText 时,会出现虚拟键盘,但 EditText 字段消失了。

也许是 RelativeLayout 导致了问题,但我不知道如何使用另一个 Layout 类重现相同的布局。

欢迎任何建议,我非常感谢您的帮助。

谢谢。

编辑:

这是两张截图,一张在底部显示没有虚拟键盘的 EditText,一张带有虚拟键盘但没有 EditText。有趣的是,SurfaceView 和 EditText 实际上向上移动,EditText 只是消失了。顺便说一句,如果按钮位于 EditText 旁边,这也会发生在按钮上。

SurfaceView 下方的 EditText(左);EditText 不见了(右)

0 投票
2 回答
2994 浏览

android - 添加从 SurfaceView 扩展到布局的视图给了我一个空白屏幕

我对 Android 编程很陌生,所以这可能是非常基本的东西。我只有一个带有几个按钮的 xml 布局。我正在尝试遵循 JetBoy 演示给出的模型,因此我正在向扩展 SurfaceView 的布局添加一个视图。当这个新视图放在我的 xml 布局中时,我只是得到一个空白屏幕。

如果有帮助,这里是 XML 布局。gameview 元素是导致屏幕空白的原因

0 投票
2 回答
2682 浏览

android - 在表面视图上绘制透明图像

我的目标是在图像上运行发光动画。我正在更改图像 alpha 以产生这种效果。

我使用了 android 框架中提供的基本 AlphaAnimation,但发现它会减慢其他动画的速度。所以我从 SurfaceView 扩展了一个类并创建了一个线程来更新它。(再次在这里,我正在处理图像的 alpha )。

一切似乎都很好,除了我无法在 SurfaceView 上绘制透明图像。它在位图的透明区域显示黑色。

提前致谢。