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

android - 绘制到 SurfaceView 时出现应用程序错误

我正在尝试在我的 main.xml 布局上创建的 SurfaceView 上进行简单的编码尝试。我可以更改背景颜色并正常显示图标,但是当我尝试绘制时出现错误。我是新手,很明显我错过了一些东西,请提供帮助提示,谢谢!

主要的.xml

和代码在这里;

更新:

好的,我让它工作了谢谢!

0 投票
1 回答
1848 浏览

android - Android SurfaceView 宽度/高度

我已经为 android 制作了几个应用程序,但没有一个应用程序如此多地使用图形。我现在正在尝试制作一个真正的游戏。我的画布上有一些位图。我的问题是我不确定在哪里初始化他们的位置。在 OnTouch 事件中,我想确保位图不会偏离屏幕。例如,初始化一个位图:

20 和 30 是任意的。但我希望能够编写类似 screen.getWidth() 的东西,这样我就可以确切地知道位图相对于屏幕边框的位置。我在开发人员参考中找不到这个。

0 投票
3 回答
5751 浏览

android - Android - 布局、表面视图和画布难题

我可能想在这里一次提出太多要求,但是任何可以帮助我一点点的圣洁、耐心、Android 大师都可能会让我的项目免于失败。

我正在开发一个装扮娃娃应用程序,用户可以在其中将项目从“服装库存”视图拖到另一个视图中的“娃娃”。

首先,我不知道如何将娃娃和库存放在不同的视图中,并且仍然能够在两者之间拖动位图。(位图的绘制和拖动本身不是问题)。

到目前为止,我所能做的就是使用一个扩展的 SurfaceView,我以编程方式将其添加到我的布局中,并使用一个线程绘制到它的 Canvas。在 Canvas 的一侧,我绘制了构成娃娃的 bitmpas。另一方面,我绘制构成库存的位图。它像那样工作得很好,但我需要能够将它分成两个视图,因为 a) 娃娃视图的高度需要大于库存视图的高度,并且 b) 我想重新使用在别处,在不同的活动中,有两种观点。

所以,最后,我的问题是:如何在两个表面视图的画布之间共享位图?或者,我可以有一个 Canvas 覆盖整个屏幕,并在其顶部放置其他视图(按钮 TextView 等)?或者,有没有其他更合乎逻辑的方式来做我正在尝试的事情?如果我有两个 SurfaceView,每个都有一个 Canvas 由一个线程控制,我将如何处理我正在拖动的位图可能同时部分“在”两个 Canvas 区域“内部”的事实?(我真的只想要一个屏幕大小的 Canvas,不是吗?)

按照下面的 Layout XML,程序添加的 SurfaceView,我们称之为 DollView 被添加到一个空的嵌套的 RelativeLayout 中。我继续通过将按钮添加到布局 XML 中来不断地捏造东西,不知何故,这些按钮确实出现在 DollView 的顶部,并且不受 DollView 画布的持续绘制和重新绘制的影响。当我拖动服装项目或玩偶的位图时,它会从这些按钮下方穿过……如果我将位图拖动到 DollView 的父级 RelativeLayout 的指定宽度之外,我仍然可以“保持”它,并将其带回来进入视野,但是,它没有被绘制到屏幕上。完全被它难住了,尽管这是我现在最小的问题。

我可以向任何对这种疯狂感兴趣的人展示他们想看的代码。谢谢你陪我。我希望阅读它不会像试图解释它伤害了我一样伤害你的头!:)

这是活动的布局,在 OnCreate 中设置为内容视图:

0 投票
7 回答
179480 浏览

android - 如何正确设置 Android 相机方向?

我想根据 Android 中的设备方向设置相机方向,但似乎没有任何效果。我尝试旋转 Surface 以及相机参数,但纵向模式下的相机预览总是颠倒过来。我需要将它顺时针旋转 90 度才能正确。这是我现在使用的代码,它只在横向模式下工作。

0 投票
3 回答
268 浏览

android - 精确检查触摸的有效性

我正在尝试制作一个显示图片的应用程序,用户需要识别一些对象(即杯子),通过触摸屏幕上图片中的杯子,如果有效,将绘制一个圆圈.

到目前为止,我有一个带有可绘制位图的表面视图,可以全屏显示,并且在触摸屏幕时,将在视图上绘制一个圆圈。

我只能想到在图片中手动获取杯子的坐标(硬编码),然后对照触摸坐标event.getX()event.getY(). 但这不会随着屏幕分辨率的变化而起作用。

这样做的更好方法是什么?这就像我正在尝试找到一种方法来精确地允许触摸我在我的应用程序中定义的某些区域。

0 投票
2 回答
1135 浏览

android - Android:SurfaceView 和 Z 级问题

我有一个 FrameLayout,其中首先包含一个 SurfaceView,其次是一个 RelativeLayout,后者又包含各种 Button 和 TextView。

在 SurfaceView 的画布上,我绘制了许多位图,并且通过触摸和运动事件允许用户拖动它们。

这些位图在拖动时会在相对布局内的按钮等下方传递。

现在,我(可能是错误的)理解 SurfaceView 的“Z 级”,或者它所具有的任何东西,与布局其余部分的实际Z 级完全无关。是这样吗?如果是这样,我该如何绕过它,以便将拖动的位图绘制在其他视图之上?或者我可以通过什么其他方式实现全屏画布,但又不让我的按钮等像叠加层的控件一样起作用。

我想我真正需要的是一个底层,触摸事件仍然可以被下面的按钮等拾取。但我不知道如何实现这一点,因为在重绘 Canvas 时,我还必须重绘背景。

能不能把FrameLayout里面RelativeLayout和SurfaceView的顺序调换一下,然后让Canvas的背景透明?如果有怎么办?触摸事件是否仍会“落入”下方的按钮?

感谢您对我的包容,我知道我有点像华夫饼。

0 投票
3 回答
24606 浏览

android - 将文本视图添加到表面视图

我在我的应用程序中使用它作为表面视图,现在我想以编程方式向它添加文本视图。我怎样才能做到这一点。

谢谢......

0 投票
1 回答
1821 浏览

android - 按HOME后Android Surfaceview onClick事件不起作用

我使用了教程中给出的游戏循环

http://www.droidnova.com/playing-with-graphics-in-android-part-vii,220.html

当我按下主页按钮并再次进入surfaceview时,onclickview在那之后不起作用

0 投票
1 回答
3811 浏览

android - Lunar Lander 示例中的缺陷 (IllegalThreadStateException)

我一直在玩月球着陆器示例,并在尝试实现关于屏幕时遇到了问题。我将其中一个菜单项(在 onCreateOptionsMenu 中)更改为“关于”选项。选择此选项后,将启动一个新 Activity 并显示一个关于屏幕。

这完美地工作并且焦点移动到一个新的活动。但是,当我按下手机返回游戏时,程序崩溃了。我收到此错误:

谁能帮我弄清楚发生了什么?每当我尝试从其他东西(无论是从偏好活动、帮助活动还是从主屏幕)返回游戏屏幕时,我都会遇到同样的问题。谢谢

0 投票
1 回答
402 浏览

android - OpenGL放置平面

我正在尝试创建一个包含显示 9 个平面的 GLView 的 SurfaceView。我试图让飞机在原点周围以菱形定向。本质上,它将使顶层以 120 度角全部指向原点,以 120 度的圆形分隔。中间层也将分开 120 度,但垂直于 x 轴并平行于 y。底层将与顶层相反。

到目前为止,我已经尝试过循环(没有很好地结束,飞机分散在整个创作中)并逐个飞机进行,以确保正确设置偏航和俯仰。两者都没有工作。

如果您有任何想法,请告诉我或指出一个像样的教程的方向。

谢谢~Aedon

这是我的逐行代码片段:

偏航和俯仰:120度

w & h:相应的宽度(2)和高度(3)

间距:0.5f