相关疑难解决方法(0)

从GLSurfaceView转换为TextureView(通过GLTextureView)

当Android 4.0(冰淇淋三明治)发布时,新的视图被引入到sdk中.这个视图是TextureView.在文档中,它表示TextureView可用于显示OpenGL场景的内容.

当您查找如何执行此操作时,您将找到一个示例链接.

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/U5RXFGpAHPE

但是我想用TextureView替换GLSurfaceView,并保持我的其余代码相同,并且只是接受TextureView的优点.

android opengl-es google-tv

22
推荐指数
3
解决办法
1万
查看次数

具有透明背景的OpenGL场景+下方和上方的本机小部件

我正在尝试实现以下视图:

在此输入图像描述

如果视图是分层的(从下到上):

  • 第1层:基本的XML布局(图像,按钮等)
  • 第2层:具有透明背景的OpenGL场景,以便我们可以看透
  • 第3层:OpenGL场景中的一些小部件(即TextView)

我已经使用GLSurfaceViewTextureView沿着这些线路,都没有成功.我可以将不透明度设置为曲面,但整个视图变为半透明,并且setZOrderOnTop必须设置为true,因此没有窗口小部件可以存在于顶部.我也试过rajawali3d,结果相同

这可以实现吗?使用股票查看?还是图书馆?

更新:也试过JPCT-AE,结果相同.

更新2:似乎有一种方法UnityPlayer可以在使用a时使用浮动OpenGL视图SurfaceView,但在较新的SDK中不再是这种情况.

transparency android glsurfaceview opengl-es-2.0 textureview

11
推荐指数
0
解决办法
310
查看次数

GLSurfaceView - 如何制作半透明背景

我尝试使用GLSurfaceView进行渲染,并通过文档设置格式:

getHolder().setFormat(PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)

我使用GLSurfaceView.Renderer,它绘制onDrawFrame:

GLES20.glClearColor(0, 0, 1, .5f);
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)

但是,GLSurfaceView中的GL渲染不是半透明的,而是完全蓝色的.如果我省略glClear调用,那么它是全黑的.

如何使GL渲染具有透明背景,以便与后面绘制的视图混合?

在此输入图像描述

编辑:这是我的GLSurfaceView:

class GLView extends GLSurfaceView{
   MyRenderer r;
   public GLView(Context ctx){
      super(ctx);
      setEGLContextClientVersion(2);

      getHolder().setFormat(PixelFormat.TRANSLUCENT);

      setEGLConfigChooser(8, 8, 8, 8, 16, 0);
      r = new MyRenderer(getContext());
      setRenderer(r);
   }
}
Run Code Online (Sandbox Code Playgroud)

android background transparent opengl-es-2.0

10
推荐指数
2
解决办法
7715
查看次数

Android,透明子GLSurfaceView布局?

可能重复:
Android OpenGL ES透明背景

我想在普通的2d ui布局屏幕上显示一些3d对象.

2d ui屏幕具有背景图像,GLSurfaceView是内容布局的子项.

我在ApiDemos样本中尝试了相同的Translucent GLSurfaceView技术,

但GLSurfaceView清除所有并显示黑色背景.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:background="@drawable/my_background_image"
>

...

<android.opengl.GLSurfaceView android:id="@+id/glview"  
    android:layout_width="fill_parent"
    android:layout_height="300px"
    android:windowIsTranslucent="true" (i'm not sure this is right)
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
setContentView(R.layout.main);
...
glview = (GLSurfaceView) findViewById(R.id.glview);
glview.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
glview.getHolder().setFormat(PixelFormat.TRANSLUCENT);
glview.setRenderer(this);
...
gl.glClearColor(0, 0, 0, 0);
...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以保留底层背景图像吗?

android background opengl-es transparent

7
推荐指数
1
解决办法
1万
查看次数

GL表面和可见性:已经消失

所以我的应用程序中有一个GLSurfaceView由GLSurfaceView.Renderer呈现并使用JPCt作为库.

表面处于不可见的RelativeLayout(可见性:已消失).当我将可见性更改为"可见"然后再返回"已消失"时,布局会按预期显示和隐藏,但GLSurfaceView不显示,它只显示并且不会隐藏,即使我可以单击现在的项目它背后".

这似乎是一些图形缓冲区问题,但我没有找到办法让这个工作......任何想法?谢谢!

android glsurfaceview

7
推荐指数
1
解决办法
3101
查看次数