2011-12-24 9 views
13

私はカスタムロック画面を作っています。全画面透過のアクティビティ(タイトルとステータスバーなし)が動作しません....なぜですか?

ロック画面は、画面が消えるまでに起動するアクティビティです。

ただし、アクティビティを透過的にすることはできません。&フルスクリーン

ステータスバーは引き続き表示されます。ここで

は、私がマニフェストに何をすべきかです:

<activity android:name=".activities.LockScreenActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/> 

私もactivitののonCreateでこれらの特典を追加している:

requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.lock_screen); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

をしかし、動作するように見えることはできません。|

なぜですか?

答えて

40

コードをonCreate()から削除します。マニフェストファイルでこれを使用してください。

android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 

それ以外の場合は、要件に応じてテーマを作成してください。ここでは、その後

+1

は私の友人は動作しません...どのようにすることを<活動のアンドロイドと異なっている:名前= "。activities.LockScreenActivity" android:theme = "@アンドロイド:style/Theme.Translucent.NoTitleBar.Fullscreen" />? – dor506

+0

半透明とnototlebarを使う方が良いです。 –

+0

私はあなたに従うかわからない。私が言ったように、私はマニフェストのアンドロイド:theme = "@アンドロイド:style/Theme.Translucent.NoTitleBar.Fullscreen"に書きました。そしてあなたはonCreateでこれを使うように言った:setTheme(android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 。私が間違っているなら私を訂正しますが、それは同じことではありませんか? – dor506

3

あなたはsetContentView前にフラグを設定する必要があり、それが正常に動作する必要があり

requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

setContentView(R.layout.lock_screen); 
0

は、それが(アンドロイド4.1以降でステータスバーを非表示にする)linkです。

View decorView = getWindow().getDecorView(); 
// Hide the status bar. 
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 
// Remember that you should never show the action bar if the 
// status bar is hidden, so hide that too if necessary. 
ActionBar actionBar = getActionBar(); 
actionBar.hide(); 

アンドロイド4.0と低い上のステータスバーを非表示にする:

<application 
    ... 
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" > 
    ... 
</application> 

@Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     // If the Android version is lower than Jellybean, use this call to hide 
 
     // the status bar. 
 
     if (Build.VERSION.SDK_INT < 16) { 
 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 
     } 
 
     setContentView(R.layout.activity_main); 
 
    }

関連する問題