标签: screen-orientation

屏幕方向更改时旋转视图(但不是布局)

我想旋转按钮/ TextViews /等.在屏幕方向改变,但我想保持布局不变.怎么做到呢?我正在使用LinearLayouts.

这就是我的意思: http://i46.tinypic.com/209hwnr.png

layout android screen-orientation

2
推荐指数
1
解决办法
1820
查看次数

当设备处于横向时,UISearchBar 不附带导航栏

在导航栏下添加了 UISearch 栏。我用

 [videoSearchBar  setFrame:CGRectMake(0, 64, 320, 44)]; 
Run Code Online (Sandbox Code Playgroud)

对于 ios 7。

在横向模式下,导航栏和搜索栏之间存在间隙。在早期版本中,它在没有 setFrame 的情况下正确显示。

在搜索栏下方有一个表格视图。

uisearchbar screen-orientation ios

2
推荐指数
1
解决办法
1124
查看次数

屏幕方向更改时如何自动更改android视图中的边距尺寸?

我看到在这个文件中:“dimens.xml”有两个属性:

<dimen name="activity_horizontal_margin">5dp</dimen>
<dimen name="activity_vertical_margin">10dp</dimen>
Run Code Online (Sandbox Code Playgroud)

有没有办法根据使用此文件的屏幕方向自动更改视图的边距?

或者这两个属性就像一个属性一样存在,每次方向更改时我都必须手动检查并将该属性设置为布局边距???

提前致谢!

layout android screen-orientation

2
推荐指数
1
解决办法
1315
查看次数

Android 应用程序方向锁定为横向,锁定设备,将其旋转为纵向并解锁,应用程序崩溃

我的应用程序与音乐有关,我使用的是 Android 4.2.2。通过在我的每个活动中指定以下行,我已将我的应用程序锁定为横向模式:

android:screenOrientation="landscape"
Run Code Online (Sandbox Code Playgroud)

现在,当我在横向模式下打开我的音乐应用程序时,用按键锁定设备的屏幕,在纵向模式下旋转设备,然后解锁设备的屏幕会导致我的音乐应用程序抛出异常。

我尝试了多种解决方案,例如在清单中设置 configChanges

android:configChanges="keyboardHidden|orientation|screenSize" 
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果。我在这里发布异常的堆栈跟踪。请帮我解决这个问题。

注意:保持音乐应用程序处于横向模式、锁定设备和解锁它不会对应用程序产生任何影响。应用程序像以前一样工作,还显示锁定设备之前打开的活动。

我想要做什么:我想将我的应用程序(只是我的应用程序而不是整个设备)锁定为横向模式,同时不监听设备的任何方向变化。

谢谢!

堆栈跟踪:

E/AndroidRuntime(17468): FATAL EXCEPTION: main
E/AndroidRuntime(17468): java.lang.RuntimeException: Unable to start activity ComponentInfo com.android.music/com.android.music.MediaPlaybackActivity}: java.lang.NullPointerException
E/AndroidRuntime(17468):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
E/AndroidRuntime(17468):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(17468):    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
E/AndroidRuntime(17468):    at android.app.ActivityThread.access$700(ActivityThread.java:141)
E/AndroidRuntime(17468):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
E/AndroidRuntime(17468):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17468):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(17468):    at android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime(17468):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(17468):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(17468):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(17468):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(17468):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(17468): Caused by: java.lang.NullPointerException
E/AndroidRuntime(17468):    at com.android.music.MediaPlaybackActivity.onCreate(MediaPlaybackActivity.java:232)
E/AndroidRuntime(17468):    at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime(17468): …
Run Code Online (Sandbox Code Playgroud)

android rotation screen-orientation

2
推荐指数
1
解决办法
3323
查看次数

不再调用 onConfigurationChanged

我的应用 onConfigurationChanged 不再被调用。我已将我的 SDK API 更新为 Lollipop,并将 SDK 级别 im AndroidManifest 设置如下:

<uses-sdk android:minSdkVersion="12" android:targetSdkVersion="22"/>
Run Code Online (Sandbox Code Playgroud)

我不知道我的更改是否是它不再工作的原因(现在工作了大约 2 年没有问题)。

在我的代码中覆盖“onConfigurationChanged”:

    @Override
        public void onConfigurationChanged(Configuration newConfig) {

Log.v("Debug orientchange", "in onConfigurationChanged"); // <-- is never called !
Run Code Online (Sandbox Code Playgroud)

在我的 AndroidManifest 中,我声明:

<activity android:name=".ChronicBrowser"  android:configChanges="orientation|keyboardHidden" android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)

当我用我的设备改变方向时,Activity 会重新启动。过去,我通过已经提到的配置/编码来防止这种情况发生。

有谁知道发生了什么变化或我做错了什么/错过了什么?

谢谢

java android screen-orientation

2
推荐指数
1
解决办法
1162
查看次数

如何从传感器确定设备方向

我的活动已锁定在 LANDSCAPE 上。但我仍然需要知道设备的方向。所以我选择使用传感器。我有以下代码

sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NORMAL);
...
@Override
  public void onSensorChanged(SensorEvent event) {
    float[] values = event.values;

    // Movement
    float azimuth = values[0];
    float pitch = values[1];
    float roll = values[2];

    if ((-110 <= pitch && pitch <= -70) || (70 <= pitch && pitch <= 110)) {
      //PORTRAIT MODE
      portraitPitch = true;
      landscapePitch = false;
      Log.d(TAG, "portrait mode: pitch = " + pitch);
    } else if ((-20 <= pitch && pitch <= 20) || (-200 …
Run Code Online (Sandbox Code Playgroud)

android orientation screen-orientation android-sensors android-orientation

2
推荐指数
1
解决办法
3650
查看次数

使用 powershell 更改屏幕方向 - 注册表值存储在哪里?

来自瑞典的海吉,

我正在尝试参考帖子中的代码:Powershell script to change screen Orientation

该脚本有效。目标是确保旋转为横向(默认)或纵向顺时针 90 度。

我需要将当前代码更改为仅允许 2 个值,或者确保脚本仅运行一次。

不管怎样,我需要知道 CDS_UPDATEREGISTRY 的注册表项存储在哪里。尽管我无法弄清楚每次轮换的值更改存储在注册表中的哪个位置?

有谁知道这些值存储在哪里?

代码:

Function Set-ScreenResolutionAndOrientation { 

<# 
    .Synopsis 
        Sets the Screen Resolution of the primary monitor 
    .Description 
        Uses Pinvoke and ChangeDisplaySettings Win32API to make the change 
    .Example 
        Set-ScreenResolutionAndOrientation         
#>

$pinvokeCode = @" 

using System; 
using System.Runtime.InteropServices; 

namespace Resolution 
{ 

    [StructLayout(LayoutKind.Sequential)] 
    public struct DEVMODE 
    { 
       [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)]
       public string dmDeviceName;

       public short  dmSpecVersion;
       public short  dmDriverVersion;
       public short  dmSize;
       public short  dmDriverExtra;
       public int    dmFields;
       public …
Run Code Online (Sandbox Code Playgroud)

native-methods screen-orientation dev-mode

2
推荐指数
1
解决办法
1万
查看次数

如何处理UIView中的背景图像方向

我正在使用下面的方法设置背景图像.当我旋转设备时,背景重复,这是有意义的,因为它不是图像.如果这是我设置背景图像的方式,如何处理方向更改?

- (void)viewDidLoad {
    [super viewDidLoad];
    UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]];
    self.view.backgroundColor = background;
    [background release];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c background-image screen-orientation ios

1
推荐指数
1
解决办法
8135
查看次数

应用程序在AsyncTask中显示进度条时崩溃方向更改

我有一个应用程序,它使用AsyncTask从服务器获取json文件,因此显示进度条.但在显示进度条和方向更改时,应用程序崩溃显示VIEW NOT ATTACHED错误或HAS LEAKED WINDOW错误.

如何摆脱这些错误?否则,应用程序在AsyncTask上运行正常.

crash android screen-orientation android-asynctask

1
推荐指数
3
解决办法
2163
查看次数

如何为某些视图控制器锁定iPhone的方向 - Swift?

我有2个视图控制器,VC1和VC2.

VC1目前以模态方式呈现VC2.

VC1唯一的方向应该是纵向,但VC2可以具有所有方向.

问题是当我在VC2中并且我旋转到横向模式然后解雇时,VC1也处于横向模式!那应该永远不会发生!

注意:没有导航控制器或UITabbarcontroller

我正在添加我的代码.

Appdelagate:

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    if let rootViewController = self.topViewControllerWithRootViewController(rootViewController: window?.rootViewController) {
        if (rootViewController.responds(to: Selector(("canRotate")))) {
            // Unlock landscape view orientations for this view controller
            return .allButUpsideDown
        }
    }

    // Only allow portrait (standard behaviour)
    return .portrait;
}

private func topViewControllerWithRootViewController(rootViewController: UIViewController!) -> UIViewController? {
    if (rootViewController == nil) { return nil }
    if (rootViewController.isKind(of: (UITabBarController).self)) {
        return topViewControllerWithRootViewController(rootViewController: (rootViewController as! UITabBarController).selectedViewController)
    } else if (rootViewController.isKind(of:(UINavigationController).self)) …
Run Code Online (Sandbox Code Playgroud)

iphone model-view-controller screen-orientation ios swift

1
推荐指数
1
解决办法
3705
查看次数