Android开发之改动屏幕方向

追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述Android开发之改动屏幕方向相关的知识,希望能为你提供帮助。
有的场景下,我们须要把手机屏幕方向改变,以下是我写的一个样例。
xml页面文件:

< RelativeLayout xmlns:android=" http://schemas.android.com/apk/res/android"
    xmlns:tools=" http://schemas.android.com/tools"
    android:layout_width=" match_parent"
    android:layout_height=" match_parent"
    android:paddingBottom=" @dimen/activity_vertical_margin"
    android:paddingLeft=" @dimen/activity_horizontal_margin"
    android:paddingRight=" @dimen/activity_horizontal_margin"
    android:paddingTop=" @dimen/activity_vertical_margin"
    tools:context=" .MainActivity" >


    < Button
        android:id=" @+ id/btn"
        android:layout_width=" wrap_content"
        android:layout_height=" wrap_content"
        android:layout_alignParentLeft=" true"
        android:layout_alignParentTop=" true"
        android:text=" 改动屏幕方向" />


< /RelativeLayout>
页面java文件:
package com.example.chcfg;


import android.os.Bundle;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() 
{

public void onClick(View source) {
// TODO Auto-generated method stub
Configuration config = getResources().getConfiguration();
if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//设置为竖屏
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
//假设当前是竖屏
if(config.orientation == Configuration.ORIENTATION_PORTRAIT)
{
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
});
}


@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
String screen = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE ? " 横向屏幕" : " 纵向屏幕" ;
Toast.makeText(this, " 系统屏幕方向发生改变\n改动后的方向为:" + screen , Toast.LENGTH_LONG).show();
}

}
MainFest xml文件:
< ?xml version=" 1.0" encoding=" utf-8" ?
>
< manifest xmlns:android=" http://schemas.android.com/apk/res/android"
    package=" com.example.chcfg"
    android:versionCode=" 1"
    android:versionName=" 1.0" >


    < uses-sdk
        android:minSdkVersion=" 8"
        android:targetSdkVersion=" 18" />


    < uses-permission android:name=" android.permission.CHANGE_CONFIGURATION" />
    < application
        android:allowBackup=" true"
        android:icon=" @drawable/ic_launcher"
        android:label=" @string/app_name"
        android:theme=" @style/AppTheme" >
        < activity
            android:name=" com.example.chcfg.MainActivity"
            android:label=" @string/app_name"
            android:configChanges=" orientation" >
            < intent-filter>
                < action android:name=" android.intent.action.MAIN" />


                < category android:name=" android.intent.category.LAUNCHER" />
            < /intent-filter>
        < /activity>
    < /application>


< /manifest>
个人辛勤劳动成果,如有转载。请注明出处。谢谢。
【Android开发之改动屏幕方向】











    推荐阅读