在Android中,屏幕如何自动从水平变为垂直或反之亦然

时间:2011-01-20 06:31:14

标签: android

斐伊川

我想知道当我们改变手机的位置时屏幕如何自动从水平变为垂直或反之亦然的机制。编码方面的例子非常值得注意。

此致

的Piyush

3 个答案:

答案 0 :(得分:0)

如果我理解正确你不会问如​​何更改自己的布局(答案可能是你为xml添加了layout-land dir),或者如何在更改屏幕时做一些代码(答案可能是是使用onConfigurationsChange),但是你问如何在用户转动手机时完成屏幕转动?

那么答案是:系统会这样做,你不需要做任何事情。它会自动执行此操作

答案 1 :(得分:0)

我认为你应该做以下事情:

1)。创建文件夹名称“layout-land”将所有与landscape相关的xml放入肖像的“layout”文件夹中的类似名称。 2)。在活动中覆盖onConfigurationChange方法。 3)。的setContentView(R.layout.layoutname)。 4)。在清单中<activity android:name=".screenname" android:configChanges="orientation" > </activity>

答案 2 :(得分:0)

屏幕自动从纵向更改为横向,反之亦然。因此,在最简单的情况下,您不必做任何事情。但是,有一件重要的事情需要考虑:

在方向更改时,Android会终止您当前的活动并重新创建它。因此,如果您有一些重要的状态变量,则必须保留它们。为此,您必须覆盖函数

@Override
public void onSaveInstanceState(Bundle stateToSave)

重新创建实例时,您必须检查

@Override
public void onCreate(Bundle savedInstanceState)

savedInstanceState的值。如果它为null,则首先启动。如果它不为null,那么它是由旋转引起的重新创建,并且您必须从Bundle savedInstanceState获取状态变量值。

如果您需要不同的纵向/横向布局,请检查Anand的回答。