Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭。
AndroidManifest.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<activity android:name= "com.google.android.gms.ads.AdActivity" android:configChanges= "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme= "@android:style/Theme.Translucent" /> <?xml version= "1.0" encoding= "utf-8" ?> <manifest xmlns:android= "http://schemas.android.com/apk/res/android" package = "com.example.yanlei.yl7" > <!-- Include required permissions for Google Mobile Ads to run. --> <uses-permission android:name= "android.permission.INTERNET" /> <uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name= "android.permission.CHANGE_CONFIGURATION" /> <application android:allowBackup= "true" android:icon= "@mipmap/ic_launcher" android:label= "@string/app_name" android:theme= "@style/AppTheme" > <!-- This meta-data tag is required to use Google Play Services. --> <meta-data android:name= "com.google.android.gms.version" android:value= "@integer/google_play_services_version" /> <activity android:name= ".MainActivity" android:label= "@string/app_name" > <intent-filter> <action android:name= "android.intent.action.MAIN" /> <category android:name= "android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- Include the AdActivity configChanges and theme. --> <activity android:name= "com.google.android.gms.ads.AdActivity" android:configChanges= "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme= "@android:style/Theme.Translucent" /> </application> </manifest> |
activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<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" > <Button android:id= "@+id/button" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "获取Configuration信息" android:textSize= "25sp" android:layout_marginTop= "80dip" android:layout_centerHorizontal= "true" /> <TextView android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "测试ConfigurationChange" android:textSize= "25sp" android:layout_centerInParent= "true" android:id= "@+id/mytext" /> </RelativeLayout> |
MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
package com.example.yanlei.yl7; import android.content.res.Configuration; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button mButton; private TextView pTextView; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); pTextView=(TextView) this .findViewById(R.id.mytext); System.out.println( "---> onCreate()" ); init(); } private void init() { mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener( new ClickListenerImpl()); } private class ClickListenerImpl implements OnClickListener { @Override public void onClick(View v) { getConfigurationInfo(); } } private void getConfigurationInfo() { Configuration configuration = getResources().getConfiguration(); //获取屏幕方向 int l = configuration.ORIENTATION_LANDSCAPE; int p = configuration.ORIENTATION_PORTRAIT; if (configuration.orientation == l) { pTextView.setText( "现在是横屏====" ); System.out.println( "现在是横屏" ); } if (configuration.orientation == p) { pTextView.setText( "现在是竖屏===" ); System.out.println( "现在是竖屏" ); } } @Override public void onConfigurationChanged(Configuration newConfig) { super .onConfigurationChanged(newConfig); //newConfig.orientation获得当前屏幕状态是横向或者竖向 //Configuration.ORIENTATION_PORTRAIT 表示竖向 //Configuration.ORIENTATION_LANDSCAPE 表示横屏 if (newConfig.orientation==Configuration.ORIENTATION_PORTRAIT){ pTextView.setText( "现在是竖屏" ); Toast.makeText(MainActivity. this , "现在是竖屏" , Toast.LENGTH_SHORT).show(); } if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ pTextView.setText( "现在是横屏" ); Toast.makeText(MainActivity. this , "现在是横屏" , Toast.LENGTH_SHORT).show(); } } @Override protected void onSaveInstanceState(Bundle outState) { super .onSaveInstanceState(outState); outState.putString( "name" , "zxx" ); outState.putInt( "id" , 9527 ); System.out.println( "---> onSaveInstanceState()" ); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super .onRestoreInstanceState(savedInstanceState); String name = savedInstanceState.getString( "name" ); int id = savedInstanceState.getInt( "id" ); System.out.println( "---> onRestoreInstanceState()" ); System.out.println( "名字=" + name + ",编号=" + id); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true ; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true ; } return super .onOptionsItemSelected(item); } } |
以上内容给大家介绍了Android横竖屏切换小结的相关知识,希望对大家有所帮助!