Articles of android windowmanager

android从全屏模式退出

我在Android工作。 我需要以全屏模式显示我的活动,我使用以下代码完成此操作。 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 现在看起来像这样: – 现在我想退出这个完整模式,所以我的活动应该像以前一样显示。 喜欢这个:- 我有一个按钮,用于在完全模式或正常模式之间切换,我将一次又一次地切换模式。 请建议我怎么做这个。 意味着如何从全屏获得正常的屏幕。 先谢谢你。

为什么我的EditText复制/粘贴菜单位于EditText下? 如何更改popup窗口的z顺序?

注意 如果有人知道如何订购(z-order)Windows通过windowmanager添加,我也会接受答案,因为它将回答所有问题。 实际上我只是通过windowManager.addView(MyView)立即执行windowManager.addView(MyView)以将视图放在另一个视图之前,但这并不理想,因为它可视地删除并添加视图。 它看起来很疯狂,他们在android中没有构建function来做这么简单的思考。 我创建了一个包含EditText的视图(linearlayout)。 我通过WindowManager.addView(view,Layout_Params)在活动中添加此视图; 但我有问题,edittext将生成的每个popup窗口(如复制/过去菜单或单词建议菜单)将在其他视图下,甚至在他们自己的EditText视图下(不在图片上,edittext具有透明背景) 我将会 我用这些布局参数创建视图(即:LinearLayout): protected WindowManager.LayoutParams createLayoutParams() { WindowManager.LayoutParams p = new WindowManager.LayoutParams(); p.gravity = Gravity.LEFT | Gravity.TOP; p.width = 0; p.height = 0; p.format = PixelFormat.TRANSLUCENT; p.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED; p.flags = NOT_FOCUSABLE_FLAGS; // TYPE_APPLICATION allows for popups in browser windows (like edit menus) p.type = WindowManager.LayoutParams.TYPE_APPLICATION; p.token = null; […]

跟踪视图添加到WindowManager(没有findViewById()函数?)

在我的服务中,我使用addView()向WindowManager添加一个视图。 当我准备隐藏视图时,我使用View引用调用removeView() 。 这很有效 – 大多数时候。 我偶尔会有Force Close报告,说View没有附加到WindowManager 。 这是有道理的。 问题是我认为该服务正在被Android杀死,当它是时候隐藏视图时,它会尝试在错误的View上删除View 。 我已经尝试检查View为null,但显然它不是在这一点上,它根本不是附加到WindowManager那个。 似乎如果View参考丢失,则无法再次访问它。 如何在WindowManager本身上获得等效的findViewById() ? 如果我的服务被停止(被杀死), View自动从WindowManager删除吗? 有没有办法可以存储对View的引用,这样如果服务停止,我仍然可以删除View (我也试图避免泄漏View )?

IllegalArgumentException:添加窗口后无法更改窗口types

我在这里尝试了建议, 这里的建议, 这里的建议,我在我的基础活动中注释掉了onAttachedToWindow()。 我有两个活动inheritance自这个类,BaseActivity。 一个运行,一个不运行。 可能有什么区别? 我的目标SDK是19; 将它改为12没有区别。 这是我的onCreate for BaseActivity: @Override protected void onCreate(Bundle savedInstanceState) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); requestWindowFeature(Window.FEATURE_NO_TITLE); super.onAttachedToWindow(); super.onCreate(savedInstanceState); …. } 当导航到第二个活动时,单步执行代码,它会通过onCreate(),onResume(),然后崩溃。 可能是什么问题呢? 堆栈跟踪: 06-26 13:41:57.963 28667-28667/com.assistek.ediary E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.assistek.ediary, PID: 28667 java.lang.IllegalArgumentException: Window type can not be changed after the window is added. at android.os.Parcel.readException(Parcel.java:1550) at android.os.Parcel.readException(Parcel.java:1499) […]

Android中“FLAG_BLUR_BEHIND”的替代?

我可以看到,当我使用API​​演示中显示的相同标志来模糊背景时,我得到一个警告,它已被弃用: “不推荐使用WindowManager.LayoutParams.FLAG_BLUR_BEHIND字段”。 我已经读过它了,我发现“不再支持模糊”了。 这是否意味着它不适用于未来的版本? 他们为什么弃用它? 还有其他选择吗? 我真的很喜欢这个function。

exceptionjava.lang.IllegalArgumentException:请求窗口android.os.BinderProxy@4205eb18不存在是什么意思

我正在尝试登录应用程序,但登录成功后即将进入下一个屏幕,它会重新启动。 以下是我认为会引起这种情况的例外,因为没有其他例外。 11-14 15:09:54.841: W/WindowManager(643): Failed looking up window 11-14 15:09:54.841: W/WindowManager(643): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4205eb18 does not exist 11-14 15:09:54.841: W/WindowManager(643): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7622) 11-14 15:09:54.841: W/WindowManager(643): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7613) 11-14 15:09:54.841: W/WindowManager(643): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1591) 11-14 15:09:54.841: W/WindowManager(643): at android.os.BinderProxy.sendDeathNotice(Binder.java:417) 11-14 15:09:54.841: W/WindowManager(643): at dalvik.system.NativeStart.run(Native Method) 11-14 15:09:54.841: I/WindowManager(643): WIN DEATH: null 任何人都可以告诉,它是什么意思,如果可能的话,如何纠正它。

在Android 2.3中通过锁屏显示触摸事件对话框

我想build立一个在锁屏上可见的对话框,并可以接收触摸事件。 我使用WindowManager创build了一个窗口,但只有TYPE_SYSTEM_OVERLAY标志显示在GB(Android 2.3.7)的锁屏上。 有没有一种方法来创build一个系统覆盖,在锁屏上可见,并可以在Android 2.3.7接收触摸事件? FLAG_WATCH_OUTSIDE_TOUCH存在一个错误,但我不确定这会如何影响我。 有任何想法吗?

Android的webview适合所有内容屏幕

您好我有一个webview,我希望它适合屏幕,使用户不必水平或垂直滚动 我曾经search过,许多build议以下但它只限制宽度,用户将仍然需要垂直滚动: engine = (WebView) (findViewById(R.id.webView1)); engine.loadUrl(www.example.com); engine.getSettings().setLoadWithOverviewMode(true); engine.getSettings().setUseWideViewPort(true); 我尝试了另一种方法,使用缩放方法,但它不会工作…..我得到了窗口宽度(1024像素),网页内容的宽度也是1024像素! 所以缩放不起作用….是否有任何方法来获得正确的规模? 或者….还有其他的方法吗?……谢谢! // get the window width and height Point outSize = new Point(); getWindowManager().getDefaultDisplay().getSize(outSize); width = outSize.x; height = outSize.y; Log.i("Menuboard", "width: " + Integer.toString(width) + ", height: " + Integer.toString(height)); WebViewClient client = new WebViewClient() { public void onPageFinished(WebView view, String url) { […]

在locking屏幕上使用窗口pipe理器显示视图

我有一个浮动图标,停留在所有活动的顶部,但是当设备被locking时,它将消失,直到设备被解锁。 另一个意思是,我想在锁屏上使用windowmanager从服务中显示一个视图(FloatIcon)。 这是我的代码到目前为止。 public class FloatIcon extends Service { private WindowManager windowManager; private ImageView floatIcon; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); floatIcon = new ImageView(this); floatIcon.setImageResource(R.drawable.ic_launcher); floatIcon.setClickable(true); floatIcon.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(getBaseContext(), MainActivity.class); […]

Android ActivityManager与WindowManager

有人可以请详细解释一下, 1- What is the use of ActivityManager & WindowManager? 2- What is the difference between ActivityManager & WindowManager?