- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试编写一个 .apk 来测量旋转 Android 设备屏幕所需的时间(循环几次旋转)。
我正在调用 setRequestedOrientation()
将屏幕重新定向到 4 个位置(PORTRAIT
、LANDSCAPE
、REVERSE_PORTRAIT
和 REVERSE_LANDSCAPE
)。
我的问题是我无法判断旋转何时完成。我尝试了一些解决方案,但每个都有自己的问题。
onConfigurationChanged()
。问题在于,当传感器发生方向变化时会触发此方法,而不是 setRequestedOrientation()
。实际上,在我之前调用 setRequestedOrientation()
FULL_SENSOR
参数调用 setRequestedOrientation()
才能使 onConfigurationChanged
正常工作.setRequestedOrientation()
有点“阻塞”。我在 setRequestedOrientation()
之前调用了 android.view.Display.getRotation()
并用 while 循环阻塞,直到它发生变化。不幸的是,它也不起作用。它会在 UI 重新显示之前返回。onCreate()
再次调用来跟踪 Activity 的生命周期,以假设轮换已完成。以前,我一直在循环,直到我的计数器达到一个值,在每次迭代中调用 setRequestedOrientation()
。在这种情况下,我的 while 循环变成了一个 if 语句,我假设 onCreate
每次都会调用该函数,但是 onCreate()
在几次之后没有被调用迭代。 UI 似乎也没有重绘。setRequestedOrientation()
之后立即使用 waitForIdleSync()
方法。 waitForIdleSync()
是 Instrumentation 类的一部分,我认为这只是为了测试而不是为了标准 .apk。任何想法都非常受欢迎。非常感谢您的帮助。
最佳答案
您应该尝试使用: http://developer.android.com/reference/android/view/OrientationEventListener.html
您需要先调用 enable(),然后您会在设备发生的每一次旋转变化时收到通知。
关于android - 使用 setRequestedOrientation 了解旋转何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092281/
我正在开发一个应用程序,它需要在智能手机上严格以纵向模式运行,在平板电脑上严格以横向模式运行。我使用以下代码在登录 Activity 的 onCreate 方法中手动设置方向: if (getRes
我想在处理屏幕方向方面模拟 youtube 视频观看行为。 用例: p1。当用户按下最大化时 -> Activity 总是进入横向 p2。当用户按下最小化时 -> Activity 总是进入纵向 p3
当我单击应用程序中的按钮时,屏幕方向将自动变为横向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 屏幕成功变
我有一个 FragmentActivity,里面有一些 fragment 。当我从手机处于纵向位置的 fragment ( fragment A)转到我在代码 setOrientation() 中设置
在我们调用 setRequestedOrientation 之后,Android 中是否有任何方法可以知道设备方向的变化,我尝试了以下方法。 getResources().getConfigurati
我正在尝试编写一个 .apk 来测量旋转 Android 设备屏幕所需的时间(循环几次旋转)。 我正在调用 setRequestedOrientation() 将屏幕重新定向到 4 个位置(PORTR
我有一个视频播放器,其中有两个功能: 如果自动旋转被禁用并且当用户点击全屏按钮时我强制方向使用setRequestedOrientation( ActivityInfo.SCREEN_ORIENTAT
我有一个关于通过调用 setRequestedOrientation 获取 IllegalStateException 的问题。 因此,为了让我们在全局范围内拥有纵向方向,我按以下方式进行: regi
我有这个视频 View 。它有一个全屏按钮作为 Controller 。自动旋转一开始是正常的,但是每当点击全屏按钮时,屏幕就会旋转到横向,当我尝试自动旋转时,它不会自动旋转到纵向。 这是我的视频 V
我想开发一个视频播放器应用程序,当设备横向时,视频全屏播放,当设备纵向时,视频半屏播放。在风景中,有一个按钮,当用户点击它时,应用程序将强制为纵向(此时,设备仍然水平。我想要的:当用户将设备更改为垂直
我试图理解在我的 list 文件上设置 screenOrientation 的区别 相对于像这样在生命周期的 onCreate 部分执行此操作 `setRequestedOrientation(Ac
我正在尝试限制 Android 中的可用方向。通过在 list 文件中设置以下标志,效果很好。 android:screenOrientation="portrait" 但我想通过编码来设置它。我从下
我在这里遇到一个问题,我需要显示数据库中的数据并以表格形式在我的应用程序中查看它。一切顺利,但由于表格列很长(由于从数据库接收到的数据),我决定将方向设置为横向以便于查看(我猜)。执行此代码后, se
我有一个适用于 Android 的应用程序,我想强制平板电脑(sw600dp 和更高版本)以横向模式显示,而手机以纵向模式显示,所以我在我的 BaseActivity 类的 onCreate 中处理
我目前正在开发一个 Android 应用程序,我想在其中: 在智能手机上禁用旋转; 在平板电脑上启用旋转。 为了做到这一点,我不能直接在 list 中设置旋转,所以我直接在 Activity 的 on
我想在扩展 Fragmnet 的类中使用 setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);,最好在哪里使用它?在
是否可以设置 Activity 的方向(在 list 中或使用 setRequestedOrientation)并指定要使用的横向或纵向模式? IE。我可以选择设备的左侧还是右侧? 使用 2.1 似乎
这里有一个简短的问题。 我有一个简单的 android 应用程序,只有一个 WebView 来显示网页和一个首选项对话框来更改方向。当我选择一个方向时,带有 webview 的 Activity 改变
我只想在 Android 平板电脑上启用旋转。我用这段代码创建了 bools.xml false 并放入MainApplication.java public class MainAppl
我在处理使用 JNI 的 native 代码时遇到了一些问题,我怀疑这可能是由于调用了 setRequestedOrientation()。 当我调用 setRequestedOrientation(
我是一名优秀的程序员,十分优秀!