Android “怎么做?”;轮换储物柜“;工作

Android “怎么做?”;轮换储物柜“;工作,android,android-layout,android-intent,android-widget,Android,Android Layout,Android Intent,Android Widget,我刚才刚安装了应用程序旋转锁。这是一个简单的应用程序,但它的工作非常好。它可以强制所有其他应用程序以横向或纵向模式运行。 我正在努力弄清楚它是如何做到这一点的。有人能告诉我吗?也许你可以按住搜索按钮或其他按钮 这就是它在HTC Desire上的工作方式您可以按住搜索按钮或其他按钮 这就是它在HTC Desire上的工作方式,将来自其他帖子的数据拼凑在一起,我能够为我正在编写的应用程序解决这个问题,而这个应用程序正需要这样做。(如果你感兴趣的话) 我的解决方案包括创建一个窗口,并将其插入视图层次结

我刚才刚安装了应用程序旋转锁。这是一个简单的应用程序,但它的工作非常好。它可以强制所有其他应用程序以横向或纵向模式运行。
我正在努力弄清楚它是如何做到这一点的。有人能告诉我吗?

也许你可以按住搜索按钮或其他按钮


这就是它在HTC Desire上的工作方式

您可以按住搜索按钮或其他按钮


这就是它在HTC Desire上的工作方式,将来自其他帖子的数据拼凑在一起,我能够为我正在编写的应用程序解决这个问题,而这个应用程序正需要这样做。(如果你感兴趣的话)

我的解决方案包括创建一个窗口,并将其插入视图层次结构的顶部,以便在其他应用程序尝试设置它之前,您可以获得第一个方向提示

orientationChanger = new LinearLayout(this);
// Using TYPE_SYSTEM_OVERLAY is crucial to make your window appear on top
// You'll need the permission android.permission.SYSTEM_ALERT_WINDOW
WindowManager.LayoutParams orientationLayout = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 0, PixelFormat.RGBA_8888);
// Use whatever constant you need for your desired rotation
orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR;

WindowManager wm = (WindowManager) this.getSystemService(Service.WINDOW_SERVICE);
wm.addView(orientationChanger, orientationLayout);
orientationChanger.setVisibility(View.VISIBLE);

这个答案的灵感来源于此:

将其他帖子中的数据拼凑在一起,我就能够为我正在编写的一个应用程序解决这个问题,而这个应用程序恰恰需要这样做。(如果你感兴趣的话)

我的解决方案包括创建一个窗口,并将其插入视图层次结构的顶部,以便在其他应用程序尝试设置它之前,您可以获得第一个方向提示

orientationChanger = new LinearLayout(this);
// Using TYPE_SYSTEM_OVERLAY is crucial to make your window appear on top
// You'll need the permission android.permission.SYSTEM_ALERT_WINDOW
WindowManager.LayoutParams orientationLayout = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 0, PixelFormat.RGBA_8888);
// Use whatever constant you need for your desired rotation
orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR;

WindowManager wm = (WindowManager) this.getSystemService(Service.WINDOW_SERVICE);
wm.addView(orientationChanger, orientationLayout);
orientationChanger.setVisibility(View.VISIBLE);

这个答案的灵感来源于此:

谢谢你的回复,但我想你不明白我问了什么。我真正想知道的是,我如何才能创建一个类似的应用程序。谢谢你的回复,但我想你不明白我问了什么。我真正想知道的是,我如何才能创建一个类似的应用程序。你共享的代码对我不起作用。我想在某些条件下使设备的默认方向为纵向。当我收到那个事件时,我已经编写了你的代码,但它并没有改变方向,你共享的代码对我不起作用。我想在某些条件下使设备的默认方向为纵向。当我收到那个事件时,我已经编写了你们的代码,但它并没有改变方向。