22

私は何かを見逃したかもしれませんが、時計が丸いか正方形かを知るためのフラグはありますか?

通知の背景をデザインしたい場合、これは重要であると想像できます。

4

7 に答える 7

22

API 23 の更新:

画面が丸いかどうかを判断するには、次を使用できます

context.getResources().getConfiguration().isScreenRound()

Android リファレンス

または、roundおよびnotroundリソース修飾子を使用して、システムに適切なリソースを適用させることもできますが、これは API 22 以下を実行しているデバイスでは機能しないことに注意してください。

ソース

この変更を指摘してくれた人々に感謝します。

古い回答

Google I/O トークから ( https://www.youtube.com/watch?v=naf_WbtFAAlY#t=284 ):

SDK 20android.view.Viewクラスから

public void setOnApplyWindowInsetsListener(OnApplyWindowInsetsListener listener)

そしてOnApplyWindowInsetsListenerコールバックメソッドを持っていますonApplyWindowsInset

public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets){

    if (windowInsets.isRound()){
        //Do stuff
    }

}
于 2014-06-26T21:05:39.663 に答える
0

私のデバイスでは windowinsets のアプローチが失敗したので、醜いが機能的な小さなトリックを行いました。
アクティビティの内部を確認する必要がある場合"1"は、ラウンド レイアウトとレクタングル レイアウトに値を含む非表示のテキストビューをレイアウトに追加します"0"

<TextView
    android:id="@+id/isRound"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"
    android:text="1" />

次に、アクティビティで:

TextView isRoundText = (TextView) view.findViewById(R.id.isRound);
boolean isRound = "1".equals(isRoundText.getText());
于 2015-07-29T11:07:36.130 に答える