标签: android-fullscreen

如何在Android中将活动设置为全屏模式?

如何为Android中的活动设置全屏模式?我使用以下代码设置全屏但它会生成错误:

例外:

android.util.AndroidRuntimeException: 
    requestFeature() must be called before adding content.         
Run Code Online (Sandbox Code Playgroud)

码:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,        
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)

android fullscreen android-activity android-fullscreen

26
推荐指数
2
解决办法
8万
查看次数

Android会在全屏显示对话框

我需要对话框来填充屏幕,除了顶部和底部的一些空间.我正在寻找一个解决方案,但找不到一个可能是因为我正在宣布它onClickListener.有人可以给一个解决方案吗?

活动代码:

sort.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder sort = new AlertDialog.Builder(HomeScreen.this);
                // Get the layout inflater
                LayoutInflater inflater = HomeScreen.this.getLayoutInflater();
                View sortView = inflater.inflate(R.layout.sort_layout, null);
                sort.setView(sortView);
                sort.create().show();
            }
        });
Run Code Online (Sandbox Code Playgroud)

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="50dp"
    android:layout_marginTop="50dp"
    android:background="@color/white"
    android:orientation="vertical" android:layout_gravity="center">
    + some more stuff here I dont think it's relevant
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-dialog android-fullscreen

22
推荐指数
2
解决办法
7万
查看次数

从沉浸式模式返回时,操作栏显示不正确

我有一些问题从Immersive Mode返回ActionBarActivity.我创建了一个简单的应用来说明这个问题.有一个按钮可以切换沉浸式模式.当从沉浸式模式"返回"时,操作栏从其原始位置向下偏移,大致相同的距离,通常偏离屏幕顶部.

我在运行Lollipop的Nexus 4上尝试过这个.这种行为在Lollipop之前没有发生.

之前的屏幕截图,沉浸式,之后.

一个简单的ActionBarActivity说明了这个问题:

public class MainActivity extends ActionBarActivity {
    private boolean immersed;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    private void enterImmersiveMode() {
        if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().getDecorView().setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    );
            immersed = true;
        }
    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    private void leaveImmersiveMode() {
        if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
            immersed = false;
//          recreate();
        }
    }

    public void toggleImmersive(View …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-fullscreen android-5.0-lollipop

22
推荐指数
1
解决办法
1219
查看次数

全屏通知仅显示为抬头

我已经用这个问题撞了桌子3天了,请告诉我我误入歧途的地方.

当我收到传入的VoIP电话时,我正在尝试显示全屏通知,就像PhoneApp那样.如果用户处于身临其境的活动中,我可以抬起头来.但是,我只收到抬头通知,并且从未获得全屏.我也需要通知忽略锁定屏幕.

这是我在做的事情:

    String callJson = call.toJson(uber).toString();
    uber.requestWakeState(UberVoice.WAKE_STATE_FULL);

    final Notification.Builder builder = new Notification.Builder(uber);
    builder.setSmallIcon(R.drawable.switch_notification);
    if (image != null) {
        builder.setLargeIcon(image);
    }
    builder.setOngoing(true);

    PendingIntent inCallPendingIntent =
            PendingIntent.getActivity(uber, 234,
                    UberVoice.createInCallIntent(), 0);
    builder.setContentIntent(inCallPendingIntent);

    builder.setContentText(body);
    builder.setUsesChronometer(false);

    builder.setContentTitle(title);

    builder.setCategory(Notification.CATEGORY_CALL);
    builder.setVisibility(Notification.VISIBILITY_PUBLIC);

    builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), AudioManager.STREAM_RING);
    builder.setVibrate(new long[]{500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500});

    builder.setPriority(Notification.PRIORITY_MAX);
    builder.setTicker(title);
    builder.setFullScreenIntent(inCallPendingIntent, true);

    builder.addAction(R.drawable.hangup_action, "Reject", CallService.getPendingIntent(uber, callJson, CallService.REJECT));
    builder.addAction(R.drawable.answer_action, "Answer", CallService.getPendingIntent(uber, callJson, CallService.ANSWER));

    NotificationManager notificationManager = (NotificationManager) uber.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = builder.build();
    notificationManager.notify(INCOMING_CALL_NOTIFICATION_ID, notification);
Run Code Online (Sandbox Code Playgroud)

这是creatCallIntent代码:

public …
Run Code Online (Sandbox Code Playgroud)

android android-notifications android-fullscreen

21
推荐指数
2
解决办法
4311
查看次数

使SurfaceView大于屏幕(将相机预览适合大于显示器的SurfaceView)

我有一个自定义相机应用程序,我想要任何预览尺寸以全屏模式显示它而不拉伸相机预览图像.对于这一点,我需要做的surfaceView大于屏幕,以保持宽高比,所以实际上用户将看到小于照相机实际拍摄.

出于某种原因,我无法使SurfaceView屏幕尺寸大于屏幕尺寸.

到目前为止我尝试过的:

  • 调整surfaceChanged方法中的相机预览

  • 调整on onMeasure方法中的相机预览

  • 方法中调整大小onLayout
  • 添加FLAG_LAYOUT_NO_LIMITS到活动 - 信息
  • 添加android:clipChildren 用于表面视图 - 信息
  • 在xml中设置宽度: android:layout_width="852px"
  • getWindow().setLayout(852, 1280); 在活动中

但是没有任何成功 - 每次的行为都是一样的:它看起来好一秒钟,然后就会拉长.

这是代码:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {

    private static final int CAMERA_ROTATE_ANGLE = 90;

    private SurfaceHolder cameraHolder;
    private Camera androidHardCamera;
    private Context context;

    public CameraPreview(Context context) {
        super(context);
        this.context = context;

        // Install a SurfaceHolder.Callback so we get notified when the
        // underlying surface is …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-camera android-fullscreen

20
推荐指数
1
解决办法
2万
查看次数

沉浸式全屏低于4.4

我有一个应用程序,我想全屏运行.如果我有一个4.4 KitKat设备,很容易设置SYSTEM_UI_FLAG_IMMERSIVE使应用程序纯净全屏.但是,如果我有一个API低于4.4的设备.我不知道如何使它全屏,好像它是一个Immersive支持的KitKat.

我可以设置全屏,并隐藏导航标记以使应用程序全屏显示,但是一旦点击屏幕,这些标志就会重置,现在将显示导航栏和状态栏.

有没有一种解决方案,我可以在JB和可能的ICS(下面不是必须的)设备上"模拟"沉浸式模式.

我有一个方法hideSystemUI,它在OnSystemUiVisibilityChangeListener当前看起来像这样的触发器时运行.

private void hideSystemUI() {
        actionBar.hide();
        isMenuVisible = false;
        if (currentapiVersion >= android.os.Build.VERSION_CODES.KITKAT){
            mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
                | View.SYSTEM_UI_FLAG_FULLSCREEN                
                | View.SYSTEM_UI_FLAG_IMMERSIVE);
        }
        else{
            mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN);
        }
}
Run Code Online (Sandbox Code Playgroud)

我需要进行哪些更改才能使应用程序全屏显示,并且不会在每次点击时显示导航栏和状态栏,而是从顶部或底部显示幻灯片.

android fullscreen android-4.2-jelly-bean android-fullscreen android-4.4-kitkat

19
推荐指数
1
解决办法
5697
查看次数

让Android应用程序全屏运行

我见过某些应用程序,特别是大多数游戏(例如,愤怒的小鸟,Temple Run等)在启动时全屏和横向模式运行.它们的方向永远不会改变,触摸屏幕时它们永远不会退出全屏.怎么做的?我需要更改或编码哪些属性?

android android-fullscreen

13
推荐指数
2
解决办法
6万
查看次数

全屏应用程序android

我有两个问题:

  1. 一个如何在全屏幕上运行我的应用程序
  2. 视频播放器如何全屏播放视频.

我已经尝试了很多,仍在努力实现这一目标,但无法找到解决方案.

我找到的解决方案列表,但它们没有满足我的要求

  • 这只隐藏了通知栏.

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    
    Run Code Online (Sandbox Code Playgroud)

    getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN).

  • 也只隐藏通知栏

    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    
    Run Code Online (Sandbox Code Playgroud)
  • 它低配置导航栏没有隐藏它.

    .getWindow()getDecorView()setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE).

  • 对我的活动没有影响.

    anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

注意:

  • 我不是在谈论生根设备,所以请提供那些可以在不生根设备的情况下工作的解决方案.
  • 我不是说只隐藏通知栏,而是隐藏导航栏和通知栏全屏.
  • 我在谈论果冻豆API 4.1或大于4.1版本的android
  • 请用代码给出答案.

在我的研究和你的答案之后,我得到了这个:

在此输入图像描述

但我的应用程序看起来应该没有导航栏:

在此输入图像描述

我不希望我的应用程序中显示系统导航栏.

android fullscreen android-activity android-fullscreen

13
推荐指数
2
解决办法
5万
查看次数

全屏+动作栏(沉浸式)

目前我正在使用低调模式隐藏顶部黑条并调暗底部导航栏.我想在Android上使用Immersive模式,但我遇到了操作栏的问题.我想做Immersive模式粘性但保持操作栏应该在哪里.有没有办法做到这一点?

这是我到目前为止所做的工作,除了它隐藏了动作栏之外.

@TargetApi(19)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        if (android.os.Build.VERSION.SDK_INT >= 19) {
            getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                View.SYSTEM_UI_FLAG_FULLSCREEN |
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何建议都会很精彩.谢谢.

android android-actionbar android-fullscreen

13
推荐指数
1
解决办法
1万
查看次数

Theme.AppCompat.Light.NoActionBar.FullScreen不适用于Android 4.4

我正在尝试构建一个全屏应用程序,当我在Acer Iconia 8中运行它时,标题不显示但操作按钮仍然显示:

AndroidManifest.xml中

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
    <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize"
        android:configChanges="orientation|keyboardHidden">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

和风格:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
       <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

编辑:

主要活动类别:

public class MainActivity extends AppCompatActivity {

    private Context context;

    private WebView webView;
    private LoginDialog dialog;
    private PinDialog pin;
    private RelativeLayout mainLayout;

    @Override …
Run Code Online (Sandbox Code Playgroud)

android android-fullscreen android-4.4-kitkat

13
推荐指数
1
解决办法
2万
查看次数