Android 动态切换全屏和非全屏模式

动态切换全屏和非全屏:

package com.screen;  
 2.  
 3. import android.app.Activity;  
 4. import android.os.Bundle;  
 5. import android.view.View;  
 6. import android.view.WindowManager;  
 7. import android.view.View.OnClickListener;  
 8. import android.widget.Button;  
 9.  
 10. public class MainActivity extends Activity {  
 11.      
 12.    private boolean isFulllScreen = false;  
 13.    private Button button;  
 14.      
 15.    @Override  
 16.    public void onCreate(Bundle savedInstanceState) {  
 17.        super.onCreate(savedInstanceState);  
 18.        setContentView(R.layout.main);  
 19.        button = (Button)findViewById(R.id.button);  
 20.        button.setOnClickListener(new OnClickListener() {  
 21.              
 22.            @Override  
 23.            public void onClick(View v) {  
 24.                isFulllScreen = !isFulllScreen;  
 25.                if (isFulllScreen) {  
 26.                    button.setText(getResources().getText(R.string.exit_full_screen));  
 27.                    WindowManager.LayoutParams params = getWindow().getAttributes();  
 28.                    params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;  
 29.                    getWindow().setAttributes(params);  
 30.                    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);  
 31.                } else {  
 32.                    button.setText(getResources().getText(R.string.full_screen));  
 33.                    WindowManager.LayoutParams params = getWindow().getAttributes();  
 34.                    params.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);  
 35.                    getWindow().setAttributes(params);  
 36.                    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);  
 37.                }  
 38.            }  
 39.        });  
 40.          
 41.    }  
 42.}  



非动态的全屏设置:

在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果。其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏。


      其一:在代码中设置(如下)


view plaincopy to clipboardprint?
public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
          
        //设置无标题  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        //设置全屏  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                WindowManager.LayoutParams.FLAG_FULLSCREEN);  
          
        setContentView(R.layout.main);  
}  
 
       但要注意的是:在代码中设置的话,设置无标题和设置全屏的两段代码要放置在 setContentView(R.layout.main); 这段代码的前面。要不然会报错。


       其二:在manifest配置文件中设置


view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
      package="com.andyidea"  
      android:versionCode="1"  
      android:versionName="1.0">  
    <uses-sdk android:minSdkVersion="8" />  
    <application android:icon="@drawable/icon" android:label="@string/app_name">  
        <activity android:name=".login.LoginActivity"   
                  android:theme="@android:style/android.NoTitleBar.Fullscreen"  
                  android:label="@string/app_name">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application>  
</manifest>  
 
        在相应的Activity中节点中添加属性:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 即可以设置某个Activity全屏显示。若设置成 android:theme="@android:style/Theme.NoTitleBar" 即是只是设置成无标题状态。

在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果。其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏。


      其一:在代码中设置(如下)


view plaincopy to clipboardprint?
public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
          
        //设置无标题  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        //设置全屏  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                WindowManager.LayoutParams.FLAG_FULLSCREEN);  
          
        setContentView(R.layout.main);  
}  
 
       但要注意的是:在代码中设置的话,设置无标题和设置全屏的两段代码要放置在 setContentView(R.layout.main); 这段代码的前面。要不然会报错。


       其二:在manifest配置文件中设置


view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
      package="com.andyidea"  
      android:versionCode="1"  
      android:versionName="1.0">  
    <uses-sdk android:minSdkVersion="8" />  
    <application android:icon="@drawable/icon" android:label="@string/app_name">  
        <activity android:name=".login.LoginActivity"   
                  android:theme="@android:style/android.NoTitleBar.Fullscreen"  
                  android:label="@string/app_name">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application>  
</manifest>  
 
        在相应的Activity中节点中添加属性:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 即可以设置某个Activity全屏显示。若设置成 android:theme="@android:style/Theme.NoTitleBar" 即是只是设置成无标题状态。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android播放器切换全屏是一种常见的操作,能够提供更好的观看体验。在Android开发中,要实现播放器的全屏切换,可以通过以下步骤进行: 1. 首先,需要在播放器的布局文件中添加一个用于全屏显示的组件,例如一个FrameLayout,并设置其宽度和高度为match_parent。 2. 在播放器的Activity或Fragment中,监听并处理全屏切换的事件。一般可以通过点击一个全屏按钮或者设备屏幕旋转来触发全屏切换。 3. 当触发全屏切换时,需要进行一些操作,首先是隐藏系统状态栏和导航栏,可以通过设置Activity的Window属性来实现。例如,在Activity的onCreate()方法中可以添加如下代码: ``` getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); ``` 4. 接下来,需要调整播放器的宽度和高度,以充满整个屏幕。可以通过设置播放器容器的LayoutParams来实现,例如: ``` FrameLayout frameLayout = findViewById(R.id.player_container); frameLayout.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); ``` 5. 调整完播放器的尺寸后,还需要调整播放器的布局,使其能够适应全屏显示。这可能涉及到改变视频的缩放模式、调整控制面板的位置等等,具体操作可以根据需求进行调整。 通过上述步骤,就可以实现Android播放器的全屏切换。当切换全屏时,用户能够更好地享受视频内容,提供了更好的观看体验。同时,在退出全屏时,需要还原回原始的布局和尺寸设置,以保持应用的稳定性和一致性。 ### 回答2: Android 播放器切换全屏是指在播放视频时,将播放器界面自动切换全屏模式,以便用户可全屏观看视频。在Android开发中,实现播放器切换全屏通常需要以下步骤: 1. 首先,需要在布局文件中创建一个用于播放视频的VideoView组件,并设置其宽高为match_parent以占满整个屏幕。 2. 在Activity或Fragment中,需要实现全屏切换的逻辑。一种常见的方式是监听屏幕方向变化,并在全屏全屏之间进行切换。 3. 在监听屏幕方向变化时,可以通过重载Activity或Fragment的onConfigurationChanged方法来响应屏幕方向变化事件。当屏幕方向变为横屏时,将播放器的布局参数设置全屏,同时隐藏其他UI元素(例如标题栏、导航栏等)。当屏幕方向变为竖屏时,恢复播放器的原始布局参数,并显示其他UI元素。 4. 在切换全屏时,还需要调用Activity或Fragment的setRequestedOrientation方法来设置屏幕方向,以保证播放器可以正确显示。 5. 在全屏切换过程中,还可以添加一些动画效果,使切换过程平滑。 6. 最后,为了确保播放器能够正常播放全屏视频,还需要注意一些细节,例如在全屏切换时暂停播放、切换屏幕方向时重新加载视频等。 综上所述,Android 播放器切换全屏可以通过监听屏幕方向变化,调整播放器布局参数以及设置屏幕方向等步骤来实现。通过合理的逻辑和界面设计,可以让用户在Android设备上享受到更好的全屏视频观看体验。 ### 回答3: Android播放器切换全屏需要以下步骤: 1. 首先,确保在播放器布局中有一个用于视频显示的容器,比如一个SurfaceView或TextureView。 2. 在播放器的Activity或Fragment中,设置一个标志变量来记录当前的屏幕状态,比如fullscreenFlag,默认为false。 3. 在播放器的布局文件中,添加一个全屏按钮,使用一个ImageView来表示。当用户点击全屏按钮时,触发一个点击事件。 4. 在点击事件中,先检查当前屏幕状态。如果fullscreenFlag为false,即当前全屏状态,则进行全屏切换操作。 5. 在全屏切换操作中,首先修改fullscreenFlag为true,然后获取到当前的Activity对象,并设置其显示方式为全屏模式,同时隐藏状态栏和导航栏。 6. 接下来,获取到当前Activity的窗口对象,调用setFlags方法并传入FLAG_FULLSCREEN标志,以全屏显示视频。 7. 修改播放器布局中的容器,将其宽度和高度设置为MATCH_PARENT,使视频充满整个屏幕。 8. 最后,调用横屏切换方法setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE),将Activity设置为横屏显示。 通过以上步骤,可以实现Android播放器的全屏切换功能。当用户点击全屏按钮时,播放器会切换全屏模式,视频会充满整个屏幕,同时隐藏状态栏和导航栏。用户可以在全屏模式下享受更好的观影体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值