[問題] 請問service是否能判斷手機方向?
大家好~
想請問service是否能偵測手機目前的orientation呢?(像是portrait或是landscape?)
因為小弟目前的程式架構大概像這樣:
在activity開啟service --> startService --> 用WindowManager在螢幕上加一個
ImageView並且setOnTouchListener在這個ImageView上
--> touch之後會開啟另一個activity
實際測試的時候好像都沒什麼問題
不過開啟一些會強制使畫面變成橫向的遊戲app之後...
就會發現這個ImageView被放到很奇怪的地方
例如原本在portrait是在左上角
轉成landscape之後會跑到左上角有點偏下的位置
關閉app之後就又回到原本位置
google一下好像沒發現解法...
我自己是想說在service開啟之後另外開一個Thread,用重力sensor的變化來判斷
但是這樣感覺有時候會誤判而且有個thread一直開著sensor好像也很耗電吧..?
想請問各位大大是不是有遇過類似情況或有更好的解法?
謝謝大家!!
在extends Service的class的onStartCommand裡面設置ImageView位置的code如下:
SharedPreferences settings=this.getSharedPreferences("PARAMETER_SETTING",
MODE_PRIVATE);
WindowManager.LayoutParams mParams=new WindowManager.LayoutParams();
mParams.type=WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
mParams.alpha=settings.getInt("AlphaValue", 30)/100.0f;
mParams.x=settings.getInt("XValue", 0);
mParams.y=settings.getInt("YValue", 0);
mParams.width=70;//WindowManager.LayoutParams.WRAP_CONTENT;
mParams.height=70;//WindowManager.LayoutParams.WRAP_CONTENT;
mParams.format=PixelFormat.RGBA_8888;//transparent background
mParams.gravity=Gravity.LEFT|Gravity.TOP;
mParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
mWm.addView(floatingImg, mParams);
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.47.207
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1411449843.A.D7E.html
→
09/23 16:39, , 1F
09/23 16:39, 1F
→
09/23 23:11, , 2F
09/23 23:11, 2F