- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白我的主要 Activity 和 OpenGL 渲染器之间的流程。
当我的应用程序启动时,用户会看到一个非常漂亮的布局,我用一个“开始渲染”按钮制作了布局。当用户单击该按钮时,他/她将被转移到绘制精美图片的渲染器 View 。然后当图片完成后,我想回到主屏幕(有按钮的那个),但我不知道如何。
我尝试从 GLRenderer 调用 setContentView(R.layout.activity_run),但显然它不起作用。然后我尝试创建一个函数 Run.endRendering(),它是一个静态方法,是从 GLRenderer 内部调用的。 Run.endRendering() 应该调用 setContentView(R.layout.activity_run) 以希望它随后将 View 传输回主屏幕,但由于 R.endRendering() 是一个静态方法,它不能调用setContentView() 的非静态方法。
所以现在我完全迷路了。有人可以阐明这个主题吗?
这些是我的骨架。
主要 Activity :
public class Run extends Activity
{
private GLSurfaceView glSurface;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_run);
// in here I mess with the main layout view the user
// is supposed to see. when he/she clicks on a button
// he/she will be transferred to the opengl view
// on button click:
glSurface = new GLSurfaceView(this);
glSurface.setRenderer(new GLRenderer());
setContentView(glSurface);
}
}
渲染器:
public class GLRenderer implements Renderer
{
// onSurfaceCreated, onDrawFrame, onSurfaceChanged, etc.
// the action happens here. From here I want to return to
// the main activity that created this renderer.
}
最佳答案
您可以做的一件事是让您的 GLSurfaceView 成为该 Activity 布局的一部分。 Activity 的 UI 线程保持运行。在其中创建一个处理程序,它将负责从布局中删除 GLSurfaceView 并显示您的普通非 opengl View 。
Handler mainHandler = new Handler() {
public void handleMessage(Message msg) {
// remove surfaceview from layout and show non-opengl views
}
};
然后您可以将 Activity 的引用(可能使用接口(interface))传递给 GLRenderer。哪个可以调用。
activity.mainHandler.sendMessage(msg)
关于java - Android:从 GLSurfaceView 返回到主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13606369/
我有一个增强现实应用程序,它显示相机 View 和一个带有多边形的 GLSurfaceView,该多边形可以在触摸屏幕时旋转。我的应用程序的主要布局是 FrameLayout。 frameLayout
我对 EGL 感到困惑。 我的 GLSurfaceView 创建了一个 EGLContext。现在我创建一个共享上下文。现在我需要使用 EGLExtension。 我必须使用的方法被称为(>=API1
是否可以在 GLSurfaceView 上添加 LinearLayout?如何在 GLSurfaceView 上叠加 LinearLayout?也许 GLSurfaceView 是 Game play
请,有人可以提供使用带有 GLSurfaceView 的 CameraX 库的好例子,找不到任何信息。 最佳答案 不存在将 CameraX 与自定义表面/TextureView 一起使用的文档。在 C
我尝试在我的 GLSurfaceView 上使用 setRotation(),但 View 似乎没有围绕屏幕中心的枢轴旋转。代码如下: class MyGLSurfaceView extends GL
我正在尝试运行 android 示例 http://developer.android.com/training/graphics/opengl/index.html 我必须向 View 添加一些控件
我有 GLSurfaceView 和顶部带有按钮的小型 LinearLayout,代表菜单。此布局默认隐藏,并在用户点击某个按钮时从屏幕底部(通过 TranslateAnimation)显示。 (也尝
我在我的应用程序中使用开放式 GL。我还在我的 Activity 中创建了一个操作栏,将其 View 设置为表面 View 。但是我无法获得操作栏。它在我的表面后面吗?我不知道。我只是无法得到它。我当
实际上,我有一个项目正在使用 GLSurfaceView。此时此组件作为主控件放置在整个屏幕上。在此配置中,我能够正确处理绘图功能。 在下一步中,我想更改 GLSurfaceView 的大小和位置。我
根据标题,从暂停状态恢复后 GLSurfaceView 为空白。 Renderer的onSurfaceCreated、onSurfaceChanged和onDrawFrame在恢复后被调用,但是屏幕还
我有一个带有可绘制对象作为背景的 GLSurfaceView,但是在没有 surfaceView.setZOrderOnTop(true) 的情况下渲染时只有背景可见 我需要避免使用 setZOrde
我正在尝试在 Android 上使用 GLSurfaceView 并遇到问题。我正在使用 this OpenGL article 中的代码.它运行良好,但当我旋转设备时,我注意到分配的内存在增长。 所
我有一个 GLSurfaceView,我在其中使用 OpenGL 显示一些动画。 我现在想给这个 View 添加一个按钮。这是如何实现的? 不涉及xml布局能不能做到? 最佳答案 您可以手动构建 Vi
我正在做一个项目,我们需要记录渲染的 OpenGL 表面。 (例如,如果我们使用 GLsurfaceView,我们需要记录表面以及来自 MIC 的音频) 目前我通过将视频源设置为 VIDEO_SOUR
我尝试使用 GLSurfaceView 进行渲染,并通过 docs我设置格式: getHolder().setFormat(PixelFormat.TRANSLUCENT); 我使用的是 GLSurf
我的程序在两个 Activity 之间切换,每个 Activity 都会膨胀一个使用 VBO 的派生 GLSurfaceView。 在两个Activity之间来回切换几次后,程序崩溃并抛出如下异常:
我正在尝试在 android 上开始使用 opengl。 我找到的所有教程都假定 GLSurfaceView 可用。当我尝试编译我的项目时,我得到了 GLSurfaceView cannot be r
我目前正在开发一个 Android 应用程序,我希望在单击按钮时重新启动 glSurfaceView。即当单击按钮时,应再次将图像读入程序并重置所有纹理。我应该怎么办?谢谢。 最佳答案 听起来您只想在
虽然我发现了一个关于 Sharing the GLES20 context... 的问题,我觉得我的情况比较宽泛一些。 我有两个 GLSurfaceView 在 FrameLayout 中彼此分层。
我正在尝试使用 MediaCodec 播放视频并通过 GLSurfaceView 呈现它,以便我可以进行帧回调。 package com.alwaysinnovating.aimediacodec;
我是一名优秀的程序员,十分优秀!