我有一个按下按钮时调用的类,用作背景的.xml文件只是一个黑屏。当我运行我的应用程序时,我收到此错误:
11-07 12:03:50.969:E / AndroidRuntime(30747):致命异常:主要 11-07 12:03:50.969:E / AndroidRuntime(30747):java.lang.NullPointerException 11-07 12:03:50.969:E / AndroidRuntime(30747):at com.synlight_development.tattoo_it.Menu $ 2.onClick(Menu.java:71) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.view.View.performClick(View.java:2532) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.view.View $ PerformClick.run(View.java:9293) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.os.Handler.handleCallback(Handler.java:587) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.os.Handler.dispatchMessage(Handler.java:92) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.os.Looper.loop(Looper.java:150) 11-07 12:03:50.969:E / AndroidRuntime(30747):在android.app.ActivityThread.main(ActivityThread.java:4263) 11-07 12:03:50.969:E / AndroidRuntime(30747):at java.lang.reflect.Method.invokeNative(Native Method) 11-07 12:03:50.969:E / AndroidRuntime(30747):at java.lang.reflect.Method.invoke(Method.java:507) 11-07 12:03:50.969:E / AndroidRuntime(30747):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839) 11-07 12:03:50.969:E / AndroidRuntime(30747):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 11-07 12:03:50.969:E / AndroidRuntime(30747):at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:3)
因为windowView默认显示在窗口底部。
试试这个
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 - >另一种观点。
答案 1 :(得分:0)
您编辑了问题
首先添加SView动作侦听器本身。 之后在编辑器活动onCreate中,您将onTouch侦听器添加到您的SView,编辑器。 并没有找到Thread。
尝试此解决方案 - >删除
v.setOnTouchListener(this);
并添加
sleep(50);
在SView中,触摸侦听器。