gpt4 book ai didi

android - 在某些设备上看不到 GLSurfaceView

转载 作者:行者123 更新时间:2023-11-29 17:43:10 27 4
gpt4 key购买 nike

我有 GLSurfaceView 和顶部带有按钮的小型 LinearLayout,代表菜单。此布局默认隐藏,并在用户点击某个按钮时从屏幕底部(通过 TranslateAnimation)显示。 (也尝试在没有动画的情况下显示 - 没有成功)。

在我能得到的所有设备和模拟器上一切正常。但我收到了用户的反馈,该菜单根本没有出现,或者有时它会在点击 5-10 次后出现。

可能由于某些原因,gl 表面呈现在 Activity 层之上,但应该在后面。

已知有问题的设备是 Huawei y300 with Android 4.1.1, LG Optimus L5, Galaxy Tab 7.7 SCH-I815,也有很多来自不同设备和 Android 版本的报告,但无法重现。

设置:

view.getHolder().setFormat(PixelFormat.RGBX_8888);
view.setEGLConfigChooser(8, 8, 8, 8, 0, 0); // alpha set to 8, else crash on Genymotion emulator
// tried to comment 2 lines above - no success
view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

我尝试了 setZOrderMediaOverlay(true) 和 setZOrderOnTop(false) - 没有帮助。

感谢您的帮助。

最佳答案

我找到了解决方案(我得到了有问题的设备并对其进行了测试)。

脏矩形有一些棘手的优化,比如必须进行图层混合的 mask 区域,但这些矩形在需要时不会更新。在显示隐藏 View 后调用 parentView.requestLayout() 强制验证这些脏矩形。

点击 5-10 次后出现菜单的解释是偶尔的广告横幅更新(或其他一些事件),这可能会调用 requestLayout。

关于android - 在某些设备上看不到 GLSurfaceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890159/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com