如何以编程方式控制整个设备的屏幕方向并进行更改?这里链接到一些可以做到这一点的应用程序:
http://dandroidtabletpc.com/download-total-screen-control-1-9-3-full-android-apk.html/
http://ru.androidzoom.com/android_applications/tools/ultimate-rotation-control_bznhn.html
也许有人知道这样的开源项目?
如何以编程方式控制整个设备的屏幕方向并进行更改?这里链接到一些可以做到这一点的应用程序:
http://dandroidtabletpc.com/download-total-screen-control-1-9-3-full-android-apk.html/
http://ru.androidzoom.com/android_applications/tools/ultimate-rotation-control_bznhn.html
也许有人知道这样的开源项目?
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
或者
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
以下是我知道的两种方法:
如果您希望设置的方向覆盖应用程序自己的方向首选项,请按照如何在 Android 中全局强制屏幕方向中的说明进行操作?.
如果您不希望设置的方向覆盖应用程序自己的方向偏好,请首先确保手机的自动旋转已关闭:
Settings.System.putInt(
this.contentResolver,
Settings.System.ACCELEROMETER_ROTATION,
0 //0 means off, 1 means on
);
然后设置手机的用户方向:
Settings.System.putInt(
getContentResolver(),
Settings.System.USER_ROTATION,
Surface.ROTATION_0 //Use any of the Surface.ROTATION_ constants
);
不要忘记检查返回值putInt
以确保更改成功。
另外,我认为您需要以下许可:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
首先,在 android 中,如果您没有通过代码或 xml 文件设置任何方向,那么您的应用默认具有方向。
如果您的要求是尽管手机处于纵向/横向模式,并且您需要一个单独的定位,那么您可以通过代码锁定它,如下所示 oncreate 方法:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //or
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
使用下面的代码,您可以获得当前的活动方向。
int orientation = getResources().getConfiguration().orientation;
if(orientation == Configuration.ORIENTATION_LANDSCAPE)
{
Log.v(TAG,"Configuration.ORIENTATION_LANDSCAPE");
}
else if(orientation == Configuration.ORIENTATION_PORTRAIT)
{
Log.v(TAG, "Configuration.ORIENTATION_PORTRAIT");
}
else if(orientation == Configuration.ORIENTATION_SQUARE)
{
Log.v(TAG, "Configuration.ORIENTATION_SQUARE");
}
else if(orientation == Configuration.ORIENTATION_UNDEFINED)
{
Log.v(TAG, "Configuration.ORIENTATION_UNDEFINED");
}
然后使用下面的代码,您可以将活动方向设置为纵向或横向。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);