2013-02-14 14 views
18

Hier ist ein Bild, das Sie mein Problem verstehen helfen:Wie kann ich das Bild in imagebutton auf den gesamten Bereich der Bildschaltfläche dehnen?

It's a "1"

ich das Bild innerhalb ImageButton auf den gesamten Bereich des ImageButton gezeigt strecken möchten. Wie Sie sehen können, nimmt das Bild mit der Nummer 1 nur etwa 95% der ImageButton und Sie können auch die Grenzen der ImageButton sehen.

Ich möchte noch die Schaltfläche Bild Stil

hier halten, wie ich bin mit Imageview:

<ImageButton 
    android:id="@+id/secondActivityBbuttonDownRight" 
    android:layout_width="0dip" 
    android:layout_height="match_parent" 
    android:layout_weight="0.5" 
    android:scaleType="fitStart" 
    android:src="@drawable/111" /> 

Ich glaube, ich fand heraus, was mein Problem ist. Ich brauche eine benutzerdefinierte Komponente, die nur ein Bild enthalten kann und einen Klick-Effekt hat.

+0

Verwendung dieses android: background = "@ ziehbar/111 " – duggu

+0

füge android: background =" @ android: color/transparent "dem ImageButton hinzu –

+0

Ich habe deine Post bearbeitet, siehe http://meta.stackexchange.com/questions/85516/, um ein Bild zu deinem Post hinzuzufügen. – lambda

Antwort

2

Verwenden Sie den folgenden Code: -

<ImageButton 
     android:id="@+id/secondActivityBbuttonDownRight" 
     android:layout_width="0dip" 
     android:layout_height="match_parent" 
     android:layout_weight="0.5" 
     android:scaleType="fitStart" 
     android:background="@drawable/111" /> 
+0

Das löst mein Problem nicht. ich den Stil der Bild-Taste verwenden möchten und die mit Hintergrund verwendet Bild – user2051993

+0

Scaletype strecken (nicht auf den Hintergrund anwenden ...) – njzk2

52

Image ist Image.
Wenn Sie möchten, dass Ihr Bild die Schaltfläche
als android:scaleType="fitXY" einstellt, wird das Bild, das Sie in android:src einstellen, gestreckt, um das gesamte Bild zu füllen.

ImageButton hat einen Hintergrund unter Ihrem Bild und Padding.
Wenn Sie keinen Hintergrund wünschen
set android:background="@android:color/transparent".
Wenn Sie keine Polsterung wünschen
android:padding="0" Set oder Hintergrund ohne Auffüllen setzen.

+1

Gute Antwort danke, aber Sie müssen Einheiten auf der Polsterung: android: padding = "0dip "ich denke, – Deemoe

+0

padding nicht mehr Teil der Image – Micro

+0

dank für diese Antwort ist :) –

1

Sie sollten erwägen, ein 9-Patch-Bild zu erstellen, damit das Bild korrekt auf einem ImageButton passt, falls Sie es dehnen müssen, aber das Bild nicht verzerrt werden soll.

Um eine Schaltfläche mit einem Bild, das es vollständig bedeckt, Sie so etwas wie diese verwenden:

<ImageButton android:id="@+id/iconBtn" 
    android:layout_width="64dip" 
    android:layout_height="64dip" 
    android:src="@drawable/icon_button" 
    android:scaleType="fitCenter" 
    android:background="#00000000"/> 

Eine vollständige Anleitung auf Schaltflächen mit benutzerdefinierten Skin erstellen und der Verwendung von Selektoren ihre Zustände zu verwalten, Sie können ein Tutorial überprüfen, das ich vor einiger Zeit hier geschrieben habe (Creating a custom Android button with a resizable skin).

1

android: scaleType = "fitXY" getestet und funktioniert ordnungsgemäß.

+0

ich frage mich, gibt es keine upvote zu dieser Antwort. Es funktioniert perfekt! – princepiero

7

Sie können auch verwenden

android:scaleType="centerCrop" 
android:padding="0dp" 
0

Wenn Ihr Bild "111" keine Polsterung hat sich dann einfach android verwenden: Hintergrund "@ ziehbar/111"

Verwandte Themen