Ich versuche, einer Schaltfläche meiner Aktivität eine Plakette hinzuzufügen. Im Moment versuche ich das XML zu machen. Der Button mit dem Abzeichen, soll wie folgt aussehen:Positionieren einer Plakettenblase auf der linken oberen Seite einer Schaltfläche
Ich habe bereits die Blase und den Text fertig innen mit einem RelativeLayout
:
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/badge"
android:layout_centerInParent="true"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="2"
android:layout_centerInParent="true" />
</RelativeLayout>
Aber ich kann nicht einen Weg finden um es dort zu platzieren und es mit demselben XML auf Hoch- und Querformat arbeiten zu lassen.
Die Buttoms im Activity
sind wie folgt aus:
<Button android:id="@+id/new_releases_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_button_selector"
android:text="@string/new_releases_title"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:gravity="center_vertical"
android:paddingLeft="12dp"
android:layout_marginTop="15dp"
android:layout_below="@id/coming_soon_button"
android:onClick="newReleaseClick"
android:layout_centerHorizontal="true" />
<Button android:id="@+id/top_sellers_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_button_selector"
android:text="@string/top_sellers_title"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:gravity="center_vertical"
android:paddingLeft="12dp"
android:layout_marginTop="15dp"
android:layout_below="@id/new_releases_button"
android:onClick="topSellersClick"
android:layout_centerHorizontal="true" />
und hier sind die beiden Quellen:
Wie soll ich die xml tun?
EDIT: beste Ansatz so weit, aber es immer noch nicht funktioniert:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/discounts_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_button_selector"
android:text="@string/discounts_title"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:onClick="discountsClick"
android:layout_marginTop="40dp"
android:layout_marginLeft="20dp"/>
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|left">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/badge"
android:layout_centerInParent="true"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="20"
android:layout_centerInParent="true" />
</RelativeLayout>
</FrameLayout>
Dies sieht aus wie der richtige Weg, aber ich kann immer noch nicht damit es funktioniert. Es ist sinnvoll, dem Abzeichen "marginTop" und "marginLeft" hinzuzufügen, sie sollten jedoch negativ sein. Dies positioniert es außerhalb der Sicht. Stattdessen habe ich der Schaltfläche "marginTop" und "marginLeft" hinzugefügt, aber diese Werte werden ignoriert. Ich konnte noch nicht verstehen warum. Ich werde die Frage mit dem besten Ansatz bisher bearbeiten. – Macarse
ja, richtig. kein negativer Rand zum Bild (obwohl ich nicht versucht habe, wenn das auch so gut funktionieren würde), können Sie mit dem oberen/linken Rand für Bild und Knopf arbeiten, wie Sie mögen. aber es macht Sinn auf diese Weise: Die obere linke Position des FrameLayout ist die obere linke Ecke des Bildes, deshalb müssen Sie den Knopf ein wenig nach rechts und unten bewegen. –
Cool, das Hinzufügen von 'android: layout_gravity =" top | left "' zum Button hat es funktioniert, aber es schneidet den Button ab, da meine Breite und Höhe von meinem Elternteil "wrap_content" sind. Ich möchte nicht etwas wie 'android: layout_height =" 60dp "erzwingen, was gut aussieht. Irgendeine Idee von einem besseren Weg, um das zu lösen? – Macarse