Android横竖屏幕切换小结
程序员文章站
2024-02-21 20:36:28
android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭。
androidman...
android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭。
androidmanifest.xml
<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
<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
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横竖屏切换小结的相关知识,希望对大家有所帮助!
下一篇: 通过LinQ查询字符出现次数的实例方法