我的应用程序锁定了电话,我发现可以通过在普通窗户上创建系统来做到这一点。
但我希望此窗口包含按钮以及生成 TextViews
和句柄 onClick
事件
怎么做 ?你能提供样本代码吗
这是我想做的一个例子
example for the activity
答案 0 :(得分:0)
以下代码显示了如何通过WindowManager
添加叠加视图。不幸的是,这些代码跳到“最近任务”活动时不起作用。
向AndroidManifest.xml添加权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
然后,用Java编写这些代码。
WindowManager windowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
layoutParams.gravity = Gravity.TOP | Gravity.LEFT;
layoutParams.x = 0;
layoutParams.y = 0;
layoutParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
View window = LayoutInflater.from(this).inflate(R.layout.layout_window, null, false);
window.findViewById(R.id.left).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "Click Lock", Toast.LENGTH_SHORT).show();
}
});
windowManager.addView(window, layoutParams);
演示用户界面显示如下: