Android 横竖屏检测代码

jopen 10年前

package com.example;      import android.app.Activity;  import android.content.pm.ActivityInfo;  import android.content.res.Configuration;  import android.os.Bundle;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  import android.widget.Toast;      public class ChangeConfiguationActivity extends Activity {      @Override  protected void onCreate(Bundle savedInstanceState) {  // TODO Auto-generated method stub  super.onCreate(savedInstanceState);  setContentView(R.layout.configuration_layout);  Button btn = (Button) findViewById(R.id.bn);  btn.setOnClickListener(new OnClickListener() {      @Override  public void onClick(View v) {  Configuration config = getResources().getConfiguration();  // 如果是横屏则设为竖屏  if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {  ChangeConfiguationActivity.this  .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  } else {  ChangeConfiguationActivity.this  .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  }  }  });  }      @Override  public void onConfigurationChanged(Configuration newConfig) {      super.onConfigurationChanged(newConfig);      String screen = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕"  : "竖向屏幕";  Toast.makeText(ChangeConfiguationActivity.this,  "系统屏幕方向发生了变化:" + screen, Toast.LENGTH_LONG).show();  }    }

 

AndroidManifest.xml 配置

 

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />    android:configChanges="orientation"   <activity              android:name=".XXX"              android:configChanges="orientation"              android:label="@string/app_name" >              <intent-filter>                  <action android:name="android.intent.action.MAIN" />                  <category android:name="android.intent.category.LAUNCHER" />              </intent-filter>          </activity>