亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于浮動窗口 打包成jar

關于浮動窗口 打包成jar

茅侃侃 2019-02-17 16:55:38
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包的程序雖然能正常運行 就是沒有顯示出一個浮動框
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

首先盡量不要將包含有界面的性質的代碼打成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()這個方法

查看完整回答
反對 回復 2019-03-01
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

你是真的想解決問題的態度來提問的么?問題都沒描述清楚啊大哥。那空針了?在onCreate()里沒問題,那你是哪調出的問題?

補充
從你修改后的代碼可以看出,是

 private ImageView ivCursor= new ImageView(this);

這一行出了問題。

Activity 只有在 onCreate之后才能當成 Context 用,而該行在是在 onCreate 之前執行。

查看完整回答
反對 回復 2019-03-01
  • 2 回答
  • 0 關注
  • 418 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號