android - SurfaceView 未显示

标签 android layout surfaceview

我有一个在按下按钮时调用的类,用作背景的 .xml 文件只是黑屏。当我运行我的应用程序时,出现此错误:

FATAL EXCEPTION: main
java.lang.NullPointerException
  at com.synlight_development.tattoo_it.Menu$2.onClick(Menu.java:71)
  at android.view.View.performClick(View.java:2532)
  at android.view.View$PerformClick.run(View.java:9293)
  at android.os.Handler.handleCallback(Handler.java:587)
  at android.os.Handler.dispatchMessage(Handler.java:92)
  at android.os.Looper.loop(Looper.java:150)
  at android.app.ActivityThread.main(ActivityThread.java:4263)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:507)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  at dalvik.system.NativeStart.main(Native Method)

最佳答案

因为 surfaceView 默认显示在窗口底部。

试试这个

   v.setZOrderOnTop(true);  //it puts surfaceview to top of your window.

或者也在您的 SView 类中,在构造函数等中设置这些参数。

   setZOrderOnTop(true); 

如果要使用GlSurfaceView。在构造函数中试试这个,

   setEGLConfigChooser(8,8,8,8,16,0);
   getHolder().setFormat(PixelFormat.TRANSLUCENT);

因此,您的表面 View 变得透明。

如果你尝试将你的 surfaceView 放在窗口的中间层,它比这更难

   surfaceView.setZOrderMediaOverlay(true);

而且您还看到了黑屏,因为您的表面 View 需要另一个表面 View 才能到达顶部。 我解决了这个问题,我创建了另一个 surfaceView(也许你想使用 CameraView 等)。并绘制 背景图像和其他 surfaceView 位于其顶部,并在窗口顶部添加另一个 View 就像那样。

1.Layer -> backgroundDrawnSurfaceView

2.Layer(中间层)->myrealSurfaceView

3.Layer -> Another Views。

关于android - SurfaceView 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259771/

相关文章:

android - Intent ?如何注册以收到收到的电子邮件提醒?

android - Xamarin Forms 图像不显示-Android

facebook - Facebook 的 Like 按钮的纯文本版本?

android - Android SurfaceView 的低 FPS

android - 是否可以同时调试 UI App 和 AAR?

android - 应用示例,使用 Android 备份服务

android - 如何为动态添加的按钮添加点击事件

javascript - 如何使用 css、html 和 jquery 创建标记样式?

android - 两层,但无法在android中显示底层

android - 在 SurfaceView 中像时钟指针一样在固定点旋转位图