2012-12-21 18 views
7

通知領域が画面の上部にあるのか、右下隅にあるのか(ほとんどのタブレットのように)プログラムで検出する方法はありますか?通知領域の位置を検出する方法は?

+1

これは良い質問ですが、なぜですか?あなたはこの知識をもってどんな悪意を持っていますか? :-p – AedonEtLIRA

+4

注:Nexus 7はタブレットであり、右下ではなく、上に沿って通知されています。 – FoamyGuy

+1

@FoamyGuy Go一貫性! – AedonEtLIRA

答えて

4

通知は常にsw600デバイス用除いて、ディスプレイの上部に25dp-トールステータスバーにが示されている(すなわち、任意の方向における最小幅が600dpである。詳細はthis blog post参照)APIレベルに11(Honeycomb)〜16(Jelly Bean pre-MR1)。これらのデバイスには、ディスプレイの下部に48dpの高さの "結合されたシステムバー"があります。

これを確認する最も簡単な方法は、認定資格によるものです。つまり、トップステータスバーを想定したレイアウトをlayout/foo.xmlに配置し、次にボトムシステムバーのバージョンをlayout-sw600dp/foo.xmlに設定します。最後に、これらの大型デバイスはAndroid 4.2(API 17)のトップステータスバーを使用するため、layout-sw600dp-v17/foo.xmlのトップステータスバーに戻す必要があります。

あなただけの、ステータスバーが一番上にあるかどうかを教えてくれvaluesで上記の例ではlayoutを交換し、values-sw600dp場合を除いて真であることに<bool>を配置しますブール値をしたい場合。