旋转Screen_Orientation

2018-01-12  本文已影响0人  天蓝_d82b

public class MainActivity extends Activity {

    private Spinner mScreenOrentation;

    private static int[] mOrientationValues = new int[] {

            // 未指定,此为默认值,由Android系统自己选择适当的方向

            ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,

            // 横屏

            ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,

            // 坚屏

            ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,

            // 用户当前的首选方向

            ActivityInfo.SCREEN_ORIENTATION_USER,

            // 继承Activity堆栈中当前Activity下面的那个Activity的方向

            ActivityInfo.SCREEN_ORIENTATION_BEHIND,

            // 由物理感应器决定显示方向,它取决于用户如何持有设备,

            ActivityInfo.SCREEN_ORIENTATION_SENSOR,

            // 忽略物理感应器——即显示方向与物理感应器无关,

            ActivityInfo.SCREEN_ORIENTATION_NOSENSOR,

            // 希望Activity在横向屏幕上显示,但是可以根据方向传感器指示的方向来进行改变

            ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,

            ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,

            // 希望Activity在横向屏幕上显示,但与正常的横向屏幕方向相反。

            ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE,

            ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT,

            // Activity的方向由方向传感器来决定,显示会根据用户设备的移动情况来旋转。

            ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR,

            // 希望Activity在横向屏幕上显示,但是可以根据用户指定的方向来进行改变

            ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE,

            ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT,

            // Activity的方向由方完全由用户来指定

            ActivityInfo.SCREEN_ORIENTATION_FULL_USER,

            // 锁定当前方向

            ActivityInfo.SCREEN_ORIENTATION_LOCKED };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //找到下拉列表框

        mScreenOrentation = (Spinner) findViewById(R.id.screen_orientation);

        //从资源文件中创建一个适配器,所以要在资源文件中定义数据源。在values目录下新建arrays.xml

        //文件,在arrays文件中准备下拉列表框中要显示的内容

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(

                this, R.array.screen_orientation,

                android.R.layout.simple_spinner_item);

        //设置下拉列表项的布局文件,使用系统自带的布局文件

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        mScreenOrentation.setAdapter(adapter);

        //设置选择监听

        mScreenOrentation.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override

            public void onItemSelected(AdapterView<?> parent, View view,

                    int position, long id) {

                //向系统发送设置屏幕方向的请求

                setRequestedOrientation(mOrientationValues[position]);

            }

            @Override

            public void onNothingSelected(AdapterView<?> parent) {

                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

            }

        });

    }

上一篇下一篇

猜你喜欢

热点阅读