(澳门银河官网下载) 关于浮动窗口 打包成jar
澳门银河官网
澳门银河官网
当前位置 : 澳门银河官网 > 澳门银河官网下载

(澳门银河官网下载) 关于浮动窗口 打包成jar

public class Mouse extends Activity{
    
     private WindowManager mWM;
     private ImageView ivCursor;
     private WindowManager.LayoutParams mParams;
     private int a,b;
     
     @Override
    protected void onCreateBundle savedInstanceState {
        // TODO Auto-generated method stub
        super.onCreatesavedInstanceState;
        
    }
     
     public void mouse{    
         mWM= WindowManager this.getBaseContext.getSystemServiceContext.WINDOW_SERVICE;
         ivCursor= new ImageViewgetBaseContext;
         ivCursor.setImageResourcecom.example.jarmouse.R.drawable.ic_launcher;
         mParams = new WindowManager.LayoutParams;//对ivCursor对象的参数描述对象 
         mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;//宽度自适应 
         mParams.width = WindowManager.LayoutParams.WRAP_CONTENT;//高度自适应 
         mParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;//设置成不能获取焦点 
         mParams.type = LayoutParams.TYPE_PHONE; 
            //设置图片格式,效果为背景透明
         mParams.format = PixelFormat.RGBA_8888;
         mParams.gravity = Gravity.LEFT | Gravity.TOP; 
         mParams.x = 0;//相对于屏幕原点的x轴距离 
         mParams.y = 0;//相对于屏幕原点的y轴距离 
         mWM.addViewivCursor, mParams;
}

当我把这段代码打包成jar 然后去调用mouse这个方法的时候这两个会出现空指针异常
mWM= WindowManager this.getBaseContext.getSystemServicContext.WINDOW_SERVICE;

     ivCursor= new ImageViewgetBaseContext;

把mouse()方法里的这段代码放到 oncreat方法中的时候就没问题
但是这样的话在引用这个jar包的程序虽然能正常运行 就是没有显示出一个浮动框

首先尽量不要将包含有界面的性质的代码打成jar包,用起来可能很不爽,而且你需要解决很多问题。可以利用的其他方式包括将工程作为libary或者通过android studio打成aar。

再说题主的问题,因为题主是定义了一个Activity,但是Activity是作为jar包里面的代码。
1.题主在自己的activity去调用了另外一个Activity的方法,而方法是让这个Activity去window里面显示一个View。
而window里面需要context对象,对象的来源是jar包里面的Activity,而Activity没有建立在正确的生命周期中,Activity那么就只是被当作了一般的类,那么context对象自然不会存在,肯定会错误。

2.题主直接去调用jar包里面的Activity,比如跳转到这个Mouse里面去,那么Activity就进行了正确的生命周期流程,那么就会去执行onCreate方法,那么就需要将mouse方法放入onCreate里面去执行,否则并不会执行mouse这个方法

你是真的想解决问题的态度来提问的么?问题都没描述清楚啊大哥。那空针了?在onCreate里没问题,那你是哪调出的问题?

补充
从你修改后的代码可以看出,是

 private ImageView ivCursor= new ImageViewthis;

这一行出了问题。

Activity 只有在 onCreate之后才能当成 Context 用,而该行在是在 onCreate 之前执行。

广告位

澳门银河官网