最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Android横竖屏监听以及90度或270度横屏监听方法

Android 太平洋学习网 浏览 评论

如何实现Android横竖屏监听(portrait到lanscape或者lanscape到portrait),以及从90度横盘转动到270度横屏,或者从270度横屏转到90度横屏的监听方法呢?下面来分别学习这两个方法。

Android横竖屏监听方法,就是手机横竖屏转动会触发的方法,使用了SensorManager中的SensorEventListener监听器来实现,代码如下:

SensorEventListener m_sensorEventListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            Log.i(TAG,"Orientation : PORTRAIT");
        }
        else {
            Log.i(TAG,"Orientation : LANDSCAPE");
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};

SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE);
sm.registerListener(m_sensorEventListener, sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_NORMAL);

Android 90度横盘转动到270度横屏,或者从270度横屏转到90度横屏的监听方法实现,虽然用得少,但是很重要:

WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int mLastRotation;
OrientationEventListener orientationEventListener = new OrientationEventListener(this,
        SensorManager.SENSOR_DELAY_NORMAL) {
    @Override
    public void onOrientationChanged(int orientation) {

        Display display = mWindowManager.getDefaultDisplay();
        int rotation = display.getRotation();
        if ((rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) && rotation != mLastRotation) {
            Log.i(TAG, "changed >>> " + rotation);

            // do something

            mLastRotation = rotation;
        }
    }
};

if (orientationEventListener.canDetectOrientation()) {
    orientationEventListener.enable();
}

因为OrientationEventListener中onOrientationChanged这个监听方法是不断触发的,频率很大,因此需要加入if语句来判断是90度横盘还是270度横盘,以免造成UI阻塞或内存溢出事件。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/1162.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论