`

屏幕切换不重启activity的方法

阅读更多
    /* 声明Display对象,以取得屏幕宽高 */
    final Display defaultDisplay = getWindow().getWindowManager()
        .getDefaultDisplay();

    intScreenH = defaultDisplay.getHeight();
    intScreenW = defaultDisplay.getWidth();

    /* 如果为Landscape */
    if (intScreenW > intScreenH)
    {
      /* Landscape => Portrait */
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else
    {
      /* Portrait => Landscape */
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

我们可以通过屏幕方向的事件改变监听来处理
 public void onConfigurationChanged(Configuration newConfig)
  {
    // TODO Auto-generated method stub

    /* 重写onConfigurationChanged事件,捕捉当设置之后的值 */
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
    }
   }

当然在配置文件里面,我们需要设置activity的这个属性:
<!-- 必須設定activity的configChanges屬性 ,不然每次都会重启Activity-->
      android:configChanges="orientation|keyboard"


但这个权限好像不需要设定了:
<!-- 貌似这个权限可以不添加 -->
	<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

分享到:
评论

相关推荐

    android横竖屏切换不重启activity解决方案

    在Android开发中,当应用程序的Activity在横竖屏之间切换时,系统默认行为是销毁当前Activity并重建,以便更新布局适应新的屏幕方向。这会导致`onCreate()`方法被再次调用,可能会造成用户体验上的中断。然而,有些...

    android应用内切换系统语言

    要让它们也显示新语言,可能需要重启Activity或者整个应用。 - 为了避免内存泄漏,记得在改变语言后释放旧的`Resources`引用。 - 不同的Android版本可能有不同的实现方式,如API 17及以下版本需要使用`...

    android屏幕的切换

    在Android开发中,屏幕切换是常见的应用场景,尤其在设计用户界面和优化用户体验时显得尤为重要。Android系统支持多种屏幕尺寸和方向,包括横屏(Landscape)和竖屏(Portrait)。本篇文章将深入探讨如何在Android中...

    Android 横竖屏切换

    Android 横竖屏切换是 Android 开发中的一种常见需求,通过利用 Android 系统每次屏幕切换会重启 Activity 的特性,在 OnCreat 处自动加载不同显示状态下的 layout。下面将详细介绍 Android 横竖屏切换的实现方法。 ...

    Android 销毁当前的Activity

    需要注意的是,让 Android 横竖屏切换时不销毁当前的 Activity,并不意味着我们可以完全忽视屏幕方向的改变。我们仍然需要在 Java 代码中加入配置信息改动的处理代码,以便正确处理屏幕方向的改变。 另外,Activity...

    解决Android手机屏幕横竖屏切换

    这告诉系统,当配置改变(如屏幕方向变化)时,Activity不应该被销毁,而是应该通过回调方法来处理这些变化。 ```xml &lt;activity android:name=".MainActivity" android:label="@string/app_name" android:...

    设备旋转与Activity生命周期

    在设备旋转时,系统会触发Activity的生命周期方法,以便重新布局UI并适应新的屏幕尺寸。 描述中提到,“设备旋转时,当前看到的Activity实例会被系统销毁,然后再创建一个新的当前Activity实例。”这是因为Android...

    Fragment的使用,隐藏显示以及androidPad横竖屏切换

    为了避免这种情况,可以在AndroidManifest.xml中为相应Activity设置`android:configChanges="orientation|screenSize"`,然后在Activity中覆盖onConfigurationChanged()方法,处理横竖屏切换。 ```xml &lt;activity ...

    【Android进阶】(6)Activity启动模式和窗口导航

    - 如果Activity不在栈顶,系统会创建新实例并压入栈。 - 适用于希望避免重复实例的情况,如消息通知接收Activity。 3. **SingleTask** - 创建一个单独的任务栈,并且栈内只有一个Activity实例。 - 当Activity...

    android横竖屏切换和自适应屏幕

    可以通过在AndroidManifest.xml中设置`android:configChanges="orientation|screenSize"`来手动处理配置变更,而不是让系统重启Activity。 4. **保存和恢复状态**:在横竖屏切换时,为了防止数据丢失,开发者需要...

    Android模拟Activity进出栈.zip

    7. **配置变更和Activity重启**:当设备配置如屏幕方向、语言设置等发生改变时,默认情况下,Android系统会销毁当前Activity并重新创建。开发者可以通过重写onSaveInstanceState()保存状态,onRestoreInstanceState...

    android横竖屏切换[文].pdf

    - **性能优化**:频繁的屏幕切换会导致不必要的资源消耗,因此,除非必要,否则尽量避免在`onConfigurationChanged()`中进行复杂的操作。 总之,Android应用程序的横竖屏切换可以通过系统自动处理或手动控制来实现...

    【Android每周专题】横竖屏切换

    当设备从横屏切换到竖屏,或者反过来,Android会调用Activity的相关生命周期方法,例如`onConfigurationChanged()`。默认情况下,系统会销毁并重新创建Activity以加载对应方向的资源。 1. **屏幕配置更改**: ...

    Android activity属性

    此属性控制`Activity`是否可以从一个任务切换到另一个任务。当设置为`true`时,如果用户从一个任务中启动了某个`Activity`,然后又从另一个任务中启动了相同的`Activity`,系统会将该`Activity`重新归入新任务中,而...

    Android屏幕旋转Demo

    当设置这些值时,Android不会默认重启Activity,而是调用`onConfigurationChanged()`方法,让你在代码中处理配置变更。 接下来,我们将在MainActivity.java中重写`onConfigurationChanged()`方法: ```java @...

    模拟Activity进出栈

    7. **配置变更**:如屏幕方向改变,可能会导致Activity重启。通过重写onSaveInstanceState()和onRestoreInstanceState(),或设置android:configChanges,开发者可以控制Activity如何响应这些配置变化。 8. **FLAG_...

    Android之Fragment多个页面切换实现

    它们有自己的视图层次结构,可以在布局中动态地插入和移除,这样就能在不重启Activity的情况下改变用户界面。 创建Fragment的步骤如下: 1. 创建一个新的Java类,继承自`androidx.fragment.app.Fragment`(对于...

    android Activity左右滑动

    在左右滑动的场景中,每个界面通常由一个Fragment表示,这样可以在不重启Activity的情况下改变屏幕内容。 3. **PageTransformer**: 如果希望自定义滑动动画,可以实现ViewPager的PageTransformer接口。这个接口提供...

    android屏幕控制

    另外,如果希望Activity不显示标题栏,可以在`res/values`文件夹下创建一个名为`winStyle.xml`的样式文件,定义一个无标题的主题: ```xml &lt;item name="android:windowNoTitle"&gt;true ``` 然后在`...

Global site tag (gtag.js) - Google Analytics