Android强制锁定竖屏_App固定设置竖屏或横屏
2015-08-04 12:47:07  By: dwtedx

很多时候我们在做Android开发的时候、由于各种原因、我们可能只会兼容竖屏、不会再做一套ui去适配横屏、那么这个时候我们就会让App应用固定为竖屏、本文会提供两种我在程序中使用的方法、希望对大家有用


1.Xml锁定横屏或竖屏

在没有设置屏幕方向的情况下会默认设置为:android:screenOrientation="unspecified"、即未指明屏幕方向、属性取值landscape为固定横屏、portrait为固定纵屏幕、会根据屏幕的方向做改变、在AndroidManifest.xml中配置、如果使某个Activity做横竖屏的变化、在Activity的标签中加入android:screenOrientation="portrait"、效果如下

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application ... >
    <activity
        android:name="com.jsl.gt.qhstudent.MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>


2、Java代码实现方式

手动变换资源文件等操作、即是因为屏幕变换后会再次重启而调用oncreate()、所以判断当前的屏幕为横或竖方向后更改资源文件即可实现、代码如下

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setRequestedOrientation(ActivityInfo
        .SCREEN_ORIENTATION_LANDSCAPE);// 横屏 
    //setRequestedOrientation(ActivityInfo
        .SCREEN_ORIENTATION_PORTRAIT);//竖屏 
    setContentView(R.layout.main); 
}


屏幕会自动切换时、默认状态的应用程序、会重新调用onCreate、相当于重新启动了一次应用程序、同时、layout可能因为横屏带来不能合理适配的问题、为了解决旋屏和键盘切换引起的程序重启问题

还需要增加一个属性:android:configChanges、这个属性可以理解为一个监听器、它将拦截旋屏和键盘切换事件、阻止程序重启而变为回调onConfigurationChanged方法、这里常用的属性取值为:keyboardHidden|orientation


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+