Android运行时动态全屏以及旋转屏幕时不重新装载


最近要做一视频播放器,在横屏时需要用到全屏播放,在网络上搜索“android 全屏”,查到的文章全是如何设置全屏,通过theme或代码设置全屏。如文章“Android实现全屏显示的方法”所说。如果按这种模式来写播放器,那么在竖屏与横屏转变时进行全屏设置也是可以的,但视频就要重新开始缓冲或单独写一个预加载类,太麻烦了。好在后又查到了动态全屏的方法。


动态全屏

核心代码如下

        //横屏时设置全屏        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);        WindowManager.LayoutParams params = getWindow().getAttributes();        params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;        getWindow().setAttributes(params);        getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

旋转屏幕不重新加载

在Android屏幕发生旋转时,默认当前Activity全得新加载,所有控件重新初始化,VideoView也要重新加载。

但经过简单设置,我们就可以避免这种情况。设置步骤如下:

1、添加权限

    

2、添加配置改变时监听的事件

            android:configChanges="orientation|screenSize"

3、重载onConfigurationChanged

    /**     * 配制发生变化,这里处理屏幕旋转的事件     * @param newConfig     */    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        //根据app内的设置,来设置屏幕方向,并判断是否全屏        if(isScreenPORTRAIT()) {            screenPortrait();        } else {            screenLandscape();        }    }
如上所示,在屏幕旋转时,根据屏幕方向的不同,执行不同的代码来动态改变屏幕控件。

更多相关文章

  1. Android 图片资源的异步加载2
  2. Android 动态设置控件高度
  3. Android怎么让toast在屏幕顶部显示
  4. android 横屏 竖屏 全屏 当前屏幕宽 高
  5. android 屏幕截屏
  6. android 获取屏幕大小
  7. android判断短信是否发送成功[动态注册广播]
  8. android editText动态改变事件
  9. android 获取和设置屏幕亮度

随机推荐

  1. Android出现java.net.SocketException: P
  2. [转]android studio 提示 Error:Failed t
  3. android 网络状态判断
  4. Android(安卓)hdpi、nodpi、sw600dp-xhdp
  5. Android studio 53 文件下载
  6. More about keeping Android’s screen a
  7. Android之富有动感的底部弹窗效果
  8. Android Bander设计与实现 - 设计篇
  9. Android Messenger 进程间通信
  10. Android(安卓)选择图片与视频