`
rayln
  • 浏览: 424555 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

屏幕旋转水平和垂直问题

 
阅读更多
参考文档http://lishuaishuai.iteye.com/blog/1133864

不加任何旋转屏幕的处理代码的时候,旋转屏幕将会导致系统把当前activity关闭,重新打开。
如果只是简单的界面调整,我们可以阻止此问题的发生,屏幕旋转而自己调整屏幕的元素重构。

首先我们需要修改AndroidManifest.xml文件:
<activity android:name=".Magazine">
</activity>

修改为:
<activity android:name=".Magazine"
  android:configChanges="orientation|keyboard">
</activity>

这样是让程序能够响应旋转屏幕的事件。
然后重写onConfigurationChanged方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
  // TODO Auto-generated method stub
  super.onConfigurationChanged(newConfig);
  Log.v(" == onConfigurationChanged");
  processLayout();
}


在我们用Android开发过程中,会碰到Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次onCreate方法。
在Android开发中这种情况视可以避免的,我们可以在androidmanifest.xml中的activit元素加入这个属性 android:configChanges="orientation|keyboardHidden" 就能有效避免oncreat方法的重复加载,
androidmanifest.xml内容如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.demo"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".DemoGPS"
            android:configChanges="orientation|keyboardHidden"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  <uses-library android:name="com.google.android.maps" />
    </application>
    <uses-sdk android:minSdkVersion="7" />
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
 
</manifest>


同时在Activity的Java文件中重载onConfigurationChanged(Configuration newConfig)这个方法,这样就不会在布局切换或窗口切换时重载等方法。代码如下:
 @Override 
    public void onConfigurationChanged(Configuration newConfig)
    { 
        super.onConfigurationChanged(newConfig); 
     if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
     {
//land
     }
     else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
     {
//port
     }
    }
分享到:
评论

相关推荐

    Android_重力感应和屏幕旋转关系.docx

    - **优化性能**:频繁的屏幕旋转可能会导致性能问题,因此需要合理设计算法,减少不必要的计算开销。 - **考虑特殊场景**:在某些特定应用场景下,可能需要禁用或自定义屏幕旋转行为,以满足特定需求。 #### 六、...

    Win10怎么设置屏幕旋转?.docx

    3. 左侧:屏幕旋转90度,长边水平向左,内容横向显示。 4. 右侧:屏幕同样旋转90度,但长边水平向右,内容横向显示。 选择适合你需求的旋转方向,例如,如果你需要查看宽幅图片或横版阅读,可以选择左侧或右侧。 ...

    irotate 旋转屏幕方向

    这款软件支持四种基本的屏幕旋转模式:正常、水平翻转、垂直翻转和顺时针90度/逆时针90度旋转,满足了用户在不同场景下的需求。 屏幕旋转在多种情况下都是必要的。例如,当你需要在狭小的空间中使用笔记本电脑,...

    旋屏软件-旋转屏幕的绿色小程序

    运行这个批处理文件可能会赋予软件权限,使其能够访问和修改与屏幕旋转相关的系统注册表项,确保软件功能的正常运作。 2. 测试.exe:这是可执行文件,很可能是旋屏软件的主程序。双击运行后,用户可以启动软件并...

    Android 实现水平、垂直方向文字跑马灯效果demo

    在"MarqueeTextDemo"这个示例中,开发者可能提供了这两种方法的实现,包括水平和垂直方向的跑马灯。为了实现垂直方向的跑马灯,可能需要计算每个字符的高度,并相应地改变文本的y坐标。此外,还可能涉及到对不同字体...

    Android 水平垂直圆形菊花进度条加载动画progress bar

    本主题主要关注如何实现自定义的水平、垂直、圆形以及菊花(loading)加载动画效果的进度条。 1. **水平进度条:** 水平进度条是最基础的进度条形式,通常用于表示任务完成的百分比。在Android中,我们可以使用`...

    Android-一个能够按垂直或水平方向将多张照片拼接在一起的App

    9. **测试与适配**:由于Android设备的多样性和屏幕尺寸差异,App需要进行广泛的兼容性测试,确保在不同设备上都能正常工作。 10. **版本控制**:文件名"afollestad-photo-affix-09c62dc"可能是Git仓库中的一个提交...

    Unity鼠标,触屏控制物体旋转缩放(鼠标和触屏通用).zip

    脚本会检测鼠标的水平和垂直移动,通常对应于鼠标的X和Y轴。当鼠标在屏幕上移动时,这些变化被转换为旋转角度,然后应用于摄像机的旋转。例如,鼠标的水平移动可能改变摄像机的视锥体(field of view)角度,而垂直...

    VerticalProgressBar 垂直进度条

    4. **可读性**:对于视障用户,垂直进度条可能比水平进度条更容易通过屏幕阅读器理解。 三、实现方式 1. **HTML/CSS**:在Web开发中,可以使用HTML `&lt;progress&gt;` 元素配合CSS来实现垂直进度条,通过改变`transform`...

    android垂直滚动条(VerticalSeekbar)

    如果应用支持横屏和竖屏,需要考虑垂直滚动条在不同屏幕方向下的显示和行为。可以通过监听屏幕方向变化并重新布局来实现适配。 9. **无障碍功能** 考虑到无障碍性,确保自定义的垂直滚动条与辅助技术兼容,例如...

    垂直SeekBar,完美同步

    在垂直SeekBar中,我们同样需要监听滑动事件,并根据手指在屏幕上的垂直位置更新进度。我们可以重写onTouchEvent()方法来实现这一点。 ```java @Override public boolean onTouchEvent(MotionEvent event) { if (!...

    垂直进度条

    使用`android:rotation="90"`属性旋转原生进度条,使它垂直显示。 4. **样式模仿苹果界面** - 保持简洁的边框设计,使用苹果风格的颜色,如淡灰色背景和蓝色进度条。 - 为了实现类似苹果界面的精细效果,可以调整...

    根据重力感应旋转屏幕-支持3个方向旋转-有代码解释

    实现屏幕旋转的关键在于监听SensorManager中的SensorEvent事件,特别是SENSOR_TYPE_GRAVITY(重力传感器)和SENSOR_TYPE_ORIENTATION(方向传感器)。以下是一段示例代码: ```java SensorManager sensorManager = ...

    基于jquery的垂直菜单特效

    相比水平菜单,垂直菜单更适合内容丰富的网站,因为它提供了更大的空间来展示子菜单项。 三、jQuery实现垂直菜单的基础 1. DOM操作:jQuery提供了一系列方法,如`$(selector).html()`, `$(selector).append()`, `$...

    自定义垂直跑马灯

    1. **垂直跑马灯**:传统的跑马灯通常是水平滚动的,但自定义垂直跑马灯则是沿垂直方向展示内容,这在空间有限或者需要突出垂直布局的场景下非常适用。设计时需要考虑元素的布局、滚动方向以及动画效果。 2. **图片...

    FLIPXYVIEW(v2.0,2010 年 3 月):翻转(镜像旋转)水平和垂直绘图轴-matlab开发

    当前水平轴将成为垂直轴,反之亦然。 FLIPXYVIEW (AX) 旋转手柄 AX 指定的轴。 请注意,此函数仅更改视图,而不更改绘制点的 x 和 y 值。 应用此功能两次将撤消翻转。 示例 1:查看屏幕截图示例 2:创建带有水平...

    带有水平和垂直文本的倒角

    标题中的“带有水平和垂直文本的倒角”指的是在编程中创建的一种图形用户界面(GUI)元素,这种元素通常是一个带有角度切边效果的框,同时可以在其中显示水平和垂直排列的文本。在Windows应用程序开发中,这样的效果...

    立方体线框模型透视投影

    (1) 在屏幕中心建立三维坐标系Oxyz,x轴水平向右,y轴铅直向上,z轴 垂直于屏幕指向观察者 (2) 建立以三维坐标系Oxyz的原点为体心,边长为a的正立方体线框模型 (3) 使用旋转变换矩阵计算立方体线框模型围绕三维坐标...

    android 垂直seekbar

    - **触摸事件转换**:处理触摸事件时,需要将屏幕上的X和Y坐标转换为View坐标,并根据旋转角度调整,确保滑动操作正确映射到垂直方向。 - **滑动动画**:垂直Seekbar的滑动动画可能与水平Seekbar有所不同,需要重新...

    Android 垂直 Seekbar.zip

    在常规的水平Seekbar中,用户通过水平滑动条来调整进度,而垂直Seekbar则是将这一交互方式旋转90度,使得滑动方向变为垂直。这通常是通过自定义View或者使用第三方库来实现的。 实现垂直Seekbar的方式主要有两种: ...

Global site tag (gtag.js) - Google Analytics