Jan*_*Jan 4 android overlay android-service
我正在我的服务类中实现windowManager
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
Run Code Online (Sandbox Code Playgroud)
我在我的Windows管理器中添加了一个视图,但该视图的点击监听器无效.
mView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(),"onClick", Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
这是布局参数.
WindowManager.LayoutParams params = new WindowManager.LayoutParams(130,130);
params.type=WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags=WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
params.format=PixelFormat.TRANSPARENT;
Run Code Online (Sandbox Code Playgroud)
我希望点击监听器正常工作,但它没有工作,所以请在这方面帮助我.
嗨经过长时间的研究,我发现了这段代码.这应该工作.试试 .在创建服务类时添加此行.以下内容是我们应该传递的参数FLAG_WATCH_OUTSIDE_TOUCH和所有.希望这对你有所帮助.
WindowManager.LayoutParams params = new WindowManager.LayoutParams(100, 100, 2007, 8, -3);
Button bb=new Button(this);
bb.setText("Button");
bb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("Clicked----><<<<<<<");
}
});
bb.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
System.out.println("Touched =----- > ");
return false;
}
});
params.gravity = Gravity.RIGHT | Gravity.TOP;
params.setTitle("Load Average");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(bb, params);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4394 次 |
| 最近记录: |