作者devilcurve (危险曲线= =+)
看板AndroidDev
标题[问题] 请问service是否能判断手机方向?
时间Tue Sep 23 13:24:00 2014
大家好~
想请问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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1411449843.A.D7E.html
2F:→ devilcurve: 谢谢大大~ 09/23 23:11