2022年3月14日 星期一

Android Studio - 怎样避免屏幕閃爍問題(Screen Flickering)(六十五)

Android Studio - 怎样避免屏幕閃爍問題(Screen Flickering)(六十五):

由於從運行的 Activity 去啟動新的 Activity 時會顯示一個空白介面,所以屏幕會出現閃爍(Screen Flickering)一下的現象。如果需要經常啟動 Activity,便會感覺很頭暈,怎樣避免這個現象?

屏幕會出現閃爍(Screen Flickering)
Android 程式啟動時,第一個看的介面並不是我們的指定的第一個 Activity 介面,而是顯示了一個空白的介面,帶標題列的,但是介面什麼內容都沒有,這個介面只顯示不到1秒左右的時間就會切換到我們的第一個 Activity 介面了,解決辦法:在第一個啟動的 Activity 的聲明中增加:android:theme="@android:style/Theme.Translucent"。

設定 AndroidManifest.xml Screen Translucent:

<activity

            android:name=".activity.MainActivity"

            android:label="@string/app_name"

            android:launchMode="singleTop"

            android:screenOrientation="portrait"

            android:theme="@android:style/Theme.Translucent" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

</activity>


Activity A → Activity B Screen (API >= 16):

Intent intent = new Intent(this, LoginActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

finish();


在 AndroidManifes.xml 標籤下可以配置名字叫做 theme 的屬性,該屬性可以配置各種各樣的顯示樣式,其中一個屬性值是 Theme_NoDisplay,簡單來說,配置為該屬性值可以不顯示任何東西,僅僅是運行該 activity。因此在設定檔 AndroidManifest.xml 中的 activity 標籤下添加如下一句:

設定 AndroidManifest.xml:

android:theme="@android:style/Theme.NoDisplay"


AndroidManifes.xml內android:theme 的標籤屬性資料:

<activity

android:theme="@android:style/Theme.Dialog"            Activity顯示爲對話框模式

android:theme="Theme.Light"                         背景為白色

android:theme="Theme.Light.NoTitleBar"                白色背景並無標題欄

android:theme="Theme.Light.NoTitleBar.Fullscreen"        白色背景,無標題欄,全螢幕

android:theme="Theme.Black"                         背景黑色

android:theme="Theme.Black.NoTitleBar"                黑色背景並無標題欄

android:theme="Theme.Black.NoTitleBar.Fullscreen"        黑色背景,無標題欄,全螢幕

android:theme="Theme.Wallpaper"                      用系統桌面為應用程式背景

android:theme="Theme.Wallpaper.NoTitleBar"             用系統桌面為應用程式背景,且無標題欄

android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"     用系統桌面為應用程式背景,無標題欄,全螢幕

android:theme="Translucent"                           透明背景

android:theme="Theme.Translucent.NoTitleBar"            透明背景並無標題

android:theme="Theme.Translucent.NoTitleBar.Fullscreen"    透明背景並無標題,全屏

android:theme="Theme.Panel"                          面板風格顯示

android:theme="Theme.Light.Panel"                     平板風格顯示

android:theme="@android:style/Theme.Dialog"             將一個Activity顯示為能話框模式

android:theme="@android:style/Theme.NoTitleBar"         不顯示應用程式標題欄

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不顯示應用程式標題欄,並全螢幕

</activity>


2022年 3月 14日(Mon)天氣報告
氣溫:46.0°F / 8.0°C @ 07:00
風速:每小時 13公里
降雨機會:54%
相對濕度:百分之 78%
天氣:多雲

沒有留言:

張貼留言