Android全屏與非全屏問題

2021-08-20 18:42:37 字數 2195 閱讀 4762

設定全屏一般常用的方法有2種。

一,在andriodmanifest.xml檔案中設定

android:theme=」@android:style/theme.light.notitlebar.fullscreen」

true

true

然後我們就可以使用這個theme了

android:allowbackup="true"

android:icon="@drawable/icon"

二,在**裡面設定

首先也是最重要的一點設定全屏的方法需要些在setcontentview方法之前

requestwindowfeature(window.feature_no_title);// 隱藏標題

getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,windowmanager.layoutparams.flag_fullscreen);// 設定全屏

用乙個工具類commonutil 設定隱藏標題欄、設定全屏,取消全屏把方法封裝起來

在需要使用時吧activity本身作為引數傳遞進去呼叫方法就ok.

import android.view.window;

import android.view.windowmanager;

public class commonutil

/*** 設定全屏

* * @param activity

*/public static void setfullscreen(activity activity)

/*** 取消全屏

* * @param activity

*/public static void cancelfullscreen(activity activity)

}一,全屏介面切換到非全屏介面問題

從乙個全屏介面切換到乙個非全屏介面,如果處理的不好很容易產生介面抖動

主要是在切換換的過程中,會先出現介面內容,然後由於狀態列的出現導致介面下移

第一種方法

全屏介面是剛進入的時候設定了全屏,沒了狀態列,進入非全屏,狀態列肯定要顯示,於是乎就發生了抖動的現                 象,

這裡採用的就是跳轉之前退出全屏,這就才能保證狀態列不抖動。

在全屏介面設定如下

getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen);
在切換到非全屏介面之前執行該操作

getwindow().setflags(windowmanager.layoutparams.flag_force_not_fullscreen,windowmanager.layoutparams.flag_force_not_fullscreen);

第二種方法

第一種方法不算完美至是在非全屏介面的抖動轉移到全屏介面了。

第二種做法是在非全屏介面採用狀態列佔位的方式也。改方法在setcontentview方法之後執行。

/** 

* 狀態列處理:解決全屏切換非全屏頁面被壓縮問題

*/

public void initstatusbar(int barcolor)

}

第三種方法

全屏介面設定style

@color/activitymaincolor

@color/activitymaincolor

true

?android:attr/borderlessbuttonstyle

@null

然後在setcontentview方法之前設定

getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,windowmanager.layoutparams.flag_fullscreen);
然後在非全屏介面setcontentview方法之前呼叫

//平滑切換全屏方法

public void smoothswitchscreen()   

}

Android動態全屏與退出全屏

讓程式全屏的方法,大家都知道,那是靜態的,程式執行之初就申明了。但是如果有這樣的需求 要在程式執行的過程中,執行了某個操作而使之全屏,然後還需要退出全屏,怎麼做?如下 windowmanager.layoutparams attrs getwindow getattributes attrs.fla...

Android 切換全屏,取消全屏

切換全屏,取消全屏 param ischecked private void switchfullscreen boolean ischecked else 橫豎屏切換時的生命週期總結 1 不設定activity的android configchanges時,切屏會重新呼叫各個生命週期,切橫屏時會執...

Android 切換全屏,取消全屏

切換全屏,取消全屏 param ischecked private void switchfullscreen boolean ischecked else 橫豎屏切換時的生命週期總結 1 不設定activity的android configchanges時,切屏會重新呼叫各個生命週期,切橫屏時會執...