【发布时间】:2014-04-02 02:44:21
【问题描述】:
我知道这个问题很糟糕,done thousands of times;但说真的,我已经被困了 4 个小时试图解决这个问题。从 2009 年到今天,我访问了每个链接,所有链接都给出了相同的解决方案(**** 知道为什么)不适用于我的案例。
这是我清单中的活动:
<activity
android:name="com.example.activities.CamerasActivity"
android:configChanges="orientation|screenSize">
</activity>
我正在使用 SDK 4.0 或更高版本:
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
这是我的课:
public class CamerasActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cameras_activity);
VideoView videoView = (VideoView)findViewById(R.id.action_cameras);
videoView.setVideoPath("/storage/sdcard/teste.mp4");
videoView.start();
}
//Still not working
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE)
{
Log.d("System.out", "Welcome to Landscape Mode");
}
else if(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT)
{
Log.d("System.out", "Welcome to portrait mode");
}
}
}
当我像这样运行我的应用程序时,我可以在纵向模式下看到,工作正常。如果我在清单上使用android:screenOrientation="landscape",我可以看到在横向模式下是强制的。这意味着我的布局很好,但为什么我的onConfigurationChanged 在我尝试旋转屏幕时没有被调用?我错过了什么?
编辑:
AVD 配置:
启用自动旋转:
视频原样: 我的 logcat 上没有输出。
【问题讨论】:
-
onConfigurationChanged方法在您物理旋转 Android 设备时被调用。您是否亲自转动过您的设备? -
不,我想我可以在 AVD 上看到这个动作 - 没有找到任何参考告诉我旋转仅适用于真实设备;我认为您可以将其发布为答案。
-
要在 AVD 上查看,请按 Ctrl+F11 更改/模拟屏幕方向。
-
但是我确实使用了 Ctrl + F11 并且仍然看不到布局旋转...
-
忘了说您需要先通过 AVD 的设置选项启用屏幕方向,然后按 Ctrl+F11。
标签: android manifest screen-rotation onconfigurationchanged