3

我有一个当我按下按钮时调用的类,用作背景的 .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)
4

2 回答 2

4

因为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);

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

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

   surfaceView.setZOrderMediaOverlay(true);

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

1.Layer -> backgroundDrawnSurfaceView

2.Layer(中间层)->myrealSurfaceView

3.Layer -> 另一个视图。

于 2012-11-07T09:24:41.590 回答
0

您编辑了您的问题

首先你添加 SView 动作监听器本身。之后,在编辑器活动 onCreate 中,您将 onTouch 侦听器添加到您的 SView、编辑器。并没有找到线程。

试试这个解决方案-> 删除

    v.setOnTouchListener(this);

并添加

  sleep(50); 

在 SView 中,触摸监听器。

于 2012-11-08T08:00:01.397 回答