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>