Wie groß ist die ActionBar in Pixel?

Lesezeit: 3 Minuten

Wie gros ist die ActionBar in
Eugen

Ich muss die genaue Größe der ActionBar in Pixel kennen, um das richtige Hintergrundbild anzuwenden.

Wie gros ist die ActionBar in
AZ13

Um die Höhe der ActionBar in XML abzurufen, verwenden Sie einfach

?android:attr/actionBarSize

oder wenn Sie ein ActionBarSherlock- oder AppCompat-Benutzer sind, verwenden Sie dies

?attr/actionBarSize

Wenn Sie diesen Wert zur Laufzeit benötigen, verwenden Sie this

final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
                    new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();

Wenn Sie verstehen müssen, wo dies definiert ist:

  1. Der Attributname selbst wird in der Plattform definiert /res/values/attrs.xml
  2. Die der Plattform themes.xml wählt dieses Attribut aus und weist ihm einen Wert zu.
  3. Der in Schritt 2 zugewiesene Wert hängt von verschiedenen Gerätegrößen ab, die in definiert sind verschiedene dimens.xml-Dateien auf der Plattform, dh. core/res/res/values-sw600dp/dimens.xml

  • Gute Antwort. Ich kenne den Weg, um diese Informationen zu finden, aber diese Antwort zu suchen war viel schneller +1. Ihre Antwort ist auch ein guter Hinweis, wie man nach solchen Dingen sucht.

    – rekire

    1. Februar 13 um 14:35 Uhr

  • Danke schön. Ich habe versucht zu verwenden @dimen/abc_action_bar_default_height direkt (ActionBarComapt) und es funktionierte (auf mdpi-Gerät). Aber der Versuch, diesen Wert auf dem Samsung Galaxy SIII zu erhalten, hat mir einen falschen Wert zurückgegeben. Das ist, weil values-xlarge (irgendwie) bevorzugter als values-land im Querformat. Der Verweis auf das Attribut wirkt stattdessen wie ein Zauber.

    – Alex Semenjuk

    17. Januar 14 um 10:36 Uhr


  • @AZ13 Das möchte ich hinzufügen android.R.attr.actionBarSize wird auf Geräten vor Version 3.0 in Größe 0 aufgelöst. Also bei der Nutzung ActionBarCompat man würde sich daran halten android.support.v7.appcompat.R.attr.actionBarSize stattdessen.

    – Zeichnete

    8. Juli 14 um 9:55 Uhr


  • Der Typ hat es in Pixeln gefragt. Ich nehme an, actionBarSize gibt den dp-Wert zurück. Ich habe den Wert 48dp bekommen. Das heißt, wenn ich es in Pixel umwandele, erhalte ich 96 Pixel für xhdpi.

    – Mohammed

    3. September 14 um 18:14 Uhr

  • “android.R.attr.actionBarSize” funktioniert nicht in der Android-Version 2.3, aber “R.attr.actionBarSize” funktioniert in allen Android-Versionen. Verwenden Sie einfach “R.attr.actionBarSize” anstelle von “android.R.attr.actionBarSize” und so weiter.

    – Nathaniel Jobs

    20. Mai 16 um 3:23 Uhr

1644315906 636 Wie gros ist die ActionBar in
Jake Wharton

Aus den dekompilierten Quellen von Android 3.2 framework-res.apk, res/values/styles.xml enthält:

<style name="Theme.Holo">
    <!-- ... -->
    <item name="actionBarSize">56.0dip</item>
    <!-- ... -->
</style>

3.0 und 3.1 scheinen gleich zu sein (zumindest von AOSP) …

  • Was ist mit der unterschiedlichen Höhe der Aktionsleiste im Querformat?

    – Manfred Moser

    27. Januar 12 um 19:41 Uhr

  • auf 4.0+: Standard ist 48 dp, Landschaft ist 40 dp, sw600dp ist 56 dp

    – Jake Wharton

    27. Januar 12 um 20:37 Uhr

  • Aus diesem Grund sollten Sie den android:attr-Wert und keinen fest codierten Wert verwenden!

    – Vikram Bodicherla

    4. Juli 13 um 3:07 Uhr

Um die tatsächliche Höhe der Actionbar zu erhalten, müssen Sie das Attribut auflösen actionBarSize zur Laufzeit.

TypedValue tv = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true);
int actionBarHeight = getResources().getDimensionPixelSize(tv.resourceId);

Eines der Honeycomb-Beispiele bezieht sich auf ?android:attr/actionBarSize

1644315907 74 Wie gros ist die ActionBar in
Manfred Moser

Ich musste diese Höhen in einer Pre-ICS-Kompatibilitäts-App richtig replizieren und mich in die vertiefen Framework-Kernquelle. Beide obigen Antworten sind irgendwie richtig.

Es läuft im Grunde darauf hinaus, Qualifizierer zu verwenden. Die Höhe wird durch die Dimension “action_bar_default_height” definiert

Es ist standardmäßig auf 48dip definiert. Aber für -land sind es 40dip und für sw600dp 56dip.

Behalten Sie den Umschaltzustand des Menus mit JQuery bei
RevanthKrishnaKumar V.

Wenn Sie die Kompatibilitäts-ActionBar aus dem aktuellen v7-Appcompat-Supportpaket verwenden, können Sie die Höhe mit abrufen

@dimen/abc_action_bar_default_height

Dokumentation

Wie gros ist die ActionBar in
stkent

Mit dem Neuen v7-Unterstützungsbibliothek (21.0.0) der Name in R.dimen hat sich geändert zu @dimen/abc_action_bar_default_height_Material.

Beim Upgrade von einer früheren Version der Support-Bibliothek sollten Sie daher diesen Wert als Höhe der Aktionsleiste verwenden

  • Perfekt! Das schlägt sicher ?attr/actionBarSize wenn man sucht, um mit einem Stammgast zusammenzupassen ActionBar.

    – karllindmark

    1. November 14 um 18:46 Uhr

.

821470cookie-checkWie groß ist die ActionBar in Pixel?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy