SurfaceView 添加到 悬浮窗 有错误 本帖最后由 seLc7 于 2013-09-09 14:52:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 FloatSurface extends Service 你这是service不是activityservice没界面。创建一个activity吧,从service中启动,实现顶层窗口。 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692 FloatSurface extends Service 你这是service不是activityservice没界面。创建一个activity吧,从service中启动,实现顶层窗口。我知道的,所以我在service里调用悬浮窗,然后用悬浮窗加载控件 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对41行是onCreate()里的createFloatView(); 85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder(); 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对41行是onCreate()里的createFloatView(); 85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();把createFloatView里面相关东西放到surfaceCreated回调去做呢 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对41行是onCreate()里的createFloatView(); 85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener() 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对41行是onCreate()里的createFloatView(); 85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener()我的意思是这个意思 public void surfaceCreated(SurfaceHolder holder) { Log.i(TAG, "surfaceCreated" ); mSurfaceHolder = holder; } 你是不是看的这个?http://blog.csdn.net/fly06102559/article/details/6996692又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。你的41行和85行是什么?之前我也遇到过这个,后来发现是wmParams.flags 设的不对41行是onCreate()里的createFloatView(); 85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener()我的意思是这个意思 public void surfaceCreated(SurfaceHolder holder) { Log.i(TAG, "surfaceCreated" ); mSurfaceHolder = holder; }呃还是报错,看了下,基本的错误内容也一样。。 package com.spyvideo;import android.annotation.TargetApi;import android.content.Context;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.WindowManager;public class FloatSurface { private static WindowManager wm; private static WindowManager.LayoutParams params; private CameraPreview cameraPreview; private Context context; private SetCamera setCamera; //public static String ip = "192.168.0.58"; public FloatSurface(Context context) { super(); this.context = context; setCamera=new SetCamera(); } public void floatView() { wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); params = new WindowManager.LayoutParams(); System.out.println("进入悬浮窗!!!!!!!!"); /* * 如果设置为params.type = WindowManager.LayoutParams.TYPE_PHONE; 那么优先级会降低一些, * 即拉下通知栏不可见 */ params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; //params.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明 /* * 下面的flags属性的效果形同“锁定”。 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。 */ params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; // params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL // | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; // 设置悬浮窗的长得宽 params.width = 100; params.height = 100; cameraPreview = new CameraPreview(context); wm.addView(cameraPreview, params); } // 预览界面CameraPreview @TargetApi(9) class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder surfaceHolder; public CameraPreview(Context context) { super(context); System.out.println("进入CameraPreview!!!!!!!!"); surfaceHolder = getHolder(); surfaceHolder.addCallback(this); // mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // 4.0+ // auto } public void surfaceCreated(SurfaceHolder holder) { try { setCamera.setup(holder, SpyActivity.ip); System.out.println("setCamera is setuped"); } catch (Exception e) { } setCamera.start(); } public void surfaceDestroyed(SurfaceHolder holder) { setCamera.stop(); } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } }} 旋转屏幕后,如何恢复多选数据 android1.5写入联系人头像出错,求解。 用2.1的环境打开1.5的程序时提示“Unable to resolve target 'android-3'” android怎么下载文件? android中 利用intent传值的空指针异常问题 新手-import包-经验分享 根据手势对图片进行缩放和移动,请教如何判断越界 手机app的欢迎界面怎么做? android源码编译出错 dlib 特征点怎么移植到android 上 android中读取并显示excel NDK下 opengles 2.0 显示 yuv
你这是service不是activity
service没界面。创建一个activity吧,从service中启动,实现顶层窗口。
你这是service不是activity
service没界面。创建一个activity吧,从service中启动,实现顶层窗口。
我知道的,所以我在service里调用悬浮窗,然后用悬浮窗加载控件
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
41行是onCreate()里的createFloatView();
85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
41行是onCreate()里的createFloatView();
85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();
把createFloatView里面相关东西放到surfaceCreated回调去做呢
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
41行是onCreate()里的createFloatView();
85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();
把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener()
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
41行是onCreate()里的createFloatView();
85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();
把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener()
我的意思是这个意思
public void surfaceCreated(SurfaceHolder holder) {
Log.i(TAG, "surfaceCreated" );
mSurfaceHolder = holder; }
又见凉凉哈,这个博文我也看了,基本的思想我就是模仿的他,但是就是报错不通过,不知道是哪里的问题。
你的41行和85行是什么?
之前我也遇到过这个,后来发现是wmParams.flags 设的不对
41行是onCreate()里的createFloatView();
85行是createFloatView();里的SurfaceHolder surfaceHolder=surfaceView.getHolder();
把createFloatView里面相关东西放到surfaceCreated回调去做呢不太明白呢,createFloatView里有windowManager的初始化还有setOnTouchListener()
我的意思是这个意思
public void surfaceCreated(SurfaceHolder holder) {
Log.i(TAG, "surfaceCreated" );
mSurfaceHolder = holder; }呃还是报错,看了下,基本的错误内容也一样。。
import android.content.Context;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.WindowManager;public class FloatSurface {
private static WindowManager wm;
private static WindowManager.LayoutParams params;
private CameraPreview cameraPreview;
private Context context;
private SetCamera setCamera;
//public static String ip = "192.168.0.58"; public FloatSurface(Context context) {
super();
this.context = context;
setCamera=new SetCamera();
} public void floatView() {
wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams();
System.out.println("进入悬浮窗!!!!!!!!");
/*
* 如果设置为params.type = WindowManager.LayoutParams.TYPE_PHONE; 那么优先级会降低一些,
* 即拉下通知栏不可见
*/
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
//params.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明 /*
* 下面的flags属性的效果形同“锁定”。 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。
*/
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
// params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
// | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; // 设置悬浮窗的长得宽
params.width = 100;
params.height = 100;
cameraPreview = new CameraPreview(context);
wm.addView(cameraPreview, params);
} // 预览界面CameraPreview
@TargetApi(9)
class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder surfaceHolder; public CameraPreview(Context context) {
super(context);
System.out.println("进入CameraPreview!!!!!!!!");
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
// mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // 4.0+
// auto
} public void surfaceCreated(SurfaceHolder holder) {
try {
setCamera.setup(holder, SpyActivity.ip);
System.out.println("setCamera is setuped");
} catch (Exception e) {
}
setCamera.start();
} public void surfaceDestroyed(SurfaceHolder holder) {
setCamera.stop();
} public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
}
}