- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 API 18 中的一项功能,我无法真正锁定它。我整晚都在阅读如何手动处理您自己的配置更改,并尝试了很多东西,但我目前的代码无效。
目标:我需要有一个 Activity ,在用户拍摄视频(将他们带回应用程序)之后,着陆页应该是横向或纵向,无论哪种方式用户拿着电话。但是如果他们决定去风景,我想锁定那个位置,这样他们就不能回到肖像(如果他们回去会导致视频观看错误)。所以他们一开始有选择,但如果他们选择那个,就必须留在风景中。但我该怎么做呢?
到目前为止,这是我尝试过的:
将这个android:configChanges="keyboardHidden|orientation|screenSize"
在<activity>
我在 list 中的 Activity 标签。
覆盖 onConfigurationChanged()
方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_make_photo_video_land);
} else {
setContentView(R.layout.activity_make_photo_video);
}
if (this.getResources().getConfiguration().orientation ==
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE && Build.VERSION.SDK_INT
>= Build.VERSION_CODES.JELLY_BEAN_MR2){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
}
我有 2 个 xml 布局,一个用于 layout 文件夹中的肖像,一个用于 layout-land 文件夹中的风景。
我得到的结果是,我可以让布局在方向更改时显示,但我无法将其锁定。我正在使用 KitKat
的设备,所以它应该锁定在那里,但它没有。
我在这里读到的关于锁定方向(或它的变通方法)的每一篇文章似乎都已有 3 或 4 年历史,基本上暗示了我已经在尝试的东西。有任何新信息吗?
谢谢。
最佳答案
你试过这个吗?
public static void lockOrientation(Activity activity) {
Display display = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();
int currentOrientation = activity.getResources().getConfiguration().orientation;
int orientation = 0;
switch(currentOrientation)
{
case Configuration.ORIENTATION_LANDSCAPE:
if(rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90)
orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
else
orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
break;
case Configuration.ORIENTATION_PORTRAIT:
if(rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270)
orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
else
orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
}
activity.setRequestedOrientation(orientation);
}
public static void unlockOrientation(Activity activity) {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
关于android - ActivityInfo.SCREEN_ORIENTATION_LOCKED 未锁定方向 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364621/
这是 API 18 中的一项功能,我无法真正锁定它。我整晚都在阅读如何手动处理您自己的配置更改,并尝试了很多东西,但我目前的代码无效。 目标:我需要有一个 Activity ,在用户拍摄视频(将他们带
我是一名优秀的程序员,十分优秀!