博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Android实现屏幕横向 竖向的切换

Posted on 2013-07-24 23:27  TimeFight  阅读(924)  评论(0)    收藏  举报

Activity类

  

  private ImageView imageView=null;
    private Button	 button=null;
    private TextView textView=null;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        textView=(TextView) super.findViewById(R.id.Text);
        
        imageView=(ImageView) super.findViewById(R.id.Image);
       // imageView.setImageResource(R.drawable.mldn_portrait);
        button=(Button) super.findViewById(R.id.Button);
        button.setOnClickListener(new OnClickListener() {
//按钮点击实现切换			
			 @Override
			public void onClick(View v) {
				if(MainActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
				{
					MainActivity.this.button.setText("错误: 不允许屏幕的切换!!!");
				}else {
					if(MainActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
					{
						MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
						
						
						
					}else if(MainActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
						MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
						
						
					}
				}
				
			}
		});
        
        
    }
	

//实现屏幕切换 图片动态切换
@Override public void onConfigurationChanged(Configuration newConfig) { if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { MainActivity.this.button.setText("切换(当前是横屏)"); MainActivity.this.imageView.setImageResource(R.drawable.mldn_landscape); }else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { MainActivity.this.button.setText("切换(当前是竖屏)"); MainActivity.this.imageView.setImageResource(R.drawable.mldn_portrait); } super.onConfigurationChanged(newConfig); Log.e("FHT", "onConfigurationChanged:" + newConfig); }
特别应该注意的地方
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.changescreen"
    android:versionCode="1"
    android:versionName="1.0"
     >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        >
        <activity
            android:name="com.example.changescreen.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" 默认的屏幕方向  竖向
android:configChanges="orientation|screenSize" >//屏幕的切换 触动onConfigurationChanged方法
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.persmission.CHANGE_CONFIGURATION" />//赋予权限
</manifest>