578 Stimmen

Android: Kombination von Text und Bild auf einem Button oder ImageButton

Ich versuche, ein Bild (als Hintergrund) auf einer Schaltfläche zu haben und fügen Sie dynamisch, je nachdem, was während der Laufzeit geschieht, etwas Text über/über das Bild.

Wenn ich die ImageButton Ich habe nicht einmal die Möglichkeit, Text hinzuzufügen. Wenn ich Button Ich kann Text hinzufügen, aber nur ein Bild definieren mit android:drawableBottom und ähnliche XML-Attribute wie definiert ici .

Diese Attribute kombinieren jedoch nur Text und Bild in x- und y-Dimensionen, d. h. ich kann ein Bild um meinen Text herum zeichnen, aber nicht unter/unter meinem Text (wobei die z-Achse so definiert ist, dass sie aus der Anzeige herauskommt).

Haben Sie einen Vorschlag, wie man das machen kann? Eine Idee wäre, entweder die Button ou ImageButton und überschreiben Sie die draw() -Methode. Aber mit meinem derzeitigen Wissensstand weiß ich nicht wirklich, wie man das macht (2D-Rendering). Vielleicht weiß jemand mit mehr Erfahrung eine Lösung oder zumindest einige Hinweise zu beginnen?

1voto

Kerim FIRAT Punkte 461
<Button android:id="@+id/myButton" 
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:text="Image Button"
    android:drawableTop="@drawable/myimage"         
    />  

Oder Sie können es programmatisch tun:

Drawable drawable = getResources.getDrawable(R.drawable.myimage);
drawable.setBounds(0, 0, 60, 60);
myButton.setCompoundDrawables(null, drawable, null, null);//to the Top of the Button

0voto

jigar Punkte 1491

Sie können dies verwenden:

  <Button
                    android:id="@+id/reset_all"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/btn_med"
                    android:text="Reset all"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/undo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/btn_med"
                    android:text="Undo"
                    android:textColor="#ffffff" />

darin habe ich ein Bild als background und auch Text hinzugefügt !

0voto

Fattie Punkte 34702

Machen Sie einen gefälschten Button.

Das ist wirklich die einzige Möglichkeit

  <FrameLayout
        android:id="@+id/fake_button"

        android:layout_width=" .. "
        android:layout_height=" .. "

        android:background="@android:color/transparent"

        android:clickable="true"
        android:onClick="tappedNext">

        <ImageView
            android:id="@+id/fake_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"

            android:src="@drawable/your_amazing_drawable" />

        <TextView
            android:id="@+id/fake_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"

            android:text="Next"
            android:fontFamily="@font/ .. "
            android:textColor="@color/ .. "
            android:textSize=" .. " />
    </FrameLayout>

-5voto

    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/temp"
        />

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X