关于浮动窗口怎么打包成jar-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于浮动窗口怎么打包成jar

2016-03-11 11:14:52 2286 1
public class Mouse extends Activity{
     private WindowManager mWM;
     private ImageView ivCursor;
     private WindowManager.LayoutParams mParams;
     private int a,b;     
     @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        
    }
     public void mouse(){    
         mWM= (WindowManager) this.getBaseContext().getSystemService(Context.WINDOW_SERVICE);
         ivCursor= new ImageView(getBaseContext());
         ivCursor.setImageResource(com.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.addView(ivCursor, mParams);
}

当我把这段代码打包成jar 然后去调用mouse()这个方法的时候这两个会出现空指针异常
mWM= (WindowManager) this.getBaseContext().getSystemServic(Context.WINDOW_SERVICE);
ivCursor= new ImageView(getBaseContext());
把mouse()方法里的这段代码放到 oncreat方法中的时候就没问题
但是这样的话在引用这个jar包的程序虽然能正常运行 就是没有显示出一个浮动框

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:58:44

    首先尽量不要将包含有界面的性质的代码打成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()这个方法

    0 0
相关问答

2

回答

Java怎么运行jar包?

2020-04-07 13:32:43 951浏览量 回答数 2

1

回答

JAR 包冲突,怎么办?

2020-03-28 23:02:16 637浏览量 回答数 1

1

回答

java sdk怎么用

2018-05-28 11:38:55 811浏览量 回答数 1

1

回答

怎么查java的jdk版本

2018-05-10 20:08:04 1772浏览量 回答数 1

1

回答

java split怎么分割tab

2018-05-10 20:08:50 5321浏览量 回答数 1

1

回答

怎么用js禁止网页关闭窗口

2018-05-10 20:00:08 1342浏览量 回答数 1

1

回答

java mkdir怎么使用

2018-05-10 20:08:18 1997浏览量 回答数 1

1

回答

java打包jar图片路径怎么写

2018-05-10 20:09:17 1898浏览量 回答数 1

1

回答

java 里面的幂怎么打

2018-05-10 20:08:26 1076浏览量 回答数 1

1

回答

maven 怎么添加jar包

2016-05-31 15:02:53 3500浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载