如何检测设备何时从纵向模式切换到横向模式?

Que*_*eyn 5 android screen-orientation orientation-changes

我有一个应用程序,显示活动中的全屏位图.为了提供快速加载时间,我将它们加载到内存中.但是当屏幕改变方向时,我想清除缓存,以便再次使用适合新维度的位图填充它.唯一的问题是,为了做到这一点,我需要检测何时发生方向变化.有谁知道如何检测这个?

noo*_*one 23

请参阅官方文档http://developer.android.com/guide/topics/resources/runtime-changes.html

更改它实际上会创建一个新视图,并且将再次调用onCreate.

此外,您可以通过检查

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @noone:请注意,如果您已选择要使用清单中的android.R.attr #configChanges属性处理的配置,则只会调用此方法.见javadoc! (5认同)

Eug*_*ene 5

onSavedInstanceState您可以从您的方法中检查onCreate,如果它不为空,则表示这是配置更改。