Android横竖屏检测


应项目要求,我们要实时检测用户横屏还是竖屏,进而分别设计横屏和竖屏的效果。
为得到状态,我们需要在相应的activity中重写一个函数,onConfigurationChanged(Configuration config)
横屏和竖屏切换的时候,默认总是会调用oncreate函数的,这样会造成资源上很大的浪费,为了解决这个问题,我们可以在配置文件中修改相应的Activity属性:Android:configChanges="orientation|keyboardHidden|navigation"
比如:
<activity android:name=".TestApp2"
                  android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|navigation">


检测横竖屏:
重写函数:
@Override
    public void onConfigurationChanged(Configuration config) {
        try {
            super.onConfigurationChanged(config);
            if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
             Toast.makeText(TestApp2.this, "当前是横向",Toast.LENGTH_SHORT).show(); 
            } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
             Toast.makeText(TestApp2.this, "哈哈,切竖屏",Toast.LENGTH_SHORT).show();            
            }
        } catch (Exception ex) {
        }
    }

相关内容