Schaltflächen Hintergrundbilder gestreckt (wrap_content oder dp usage)

8

Ich stelle Hintergrundbilder für meine benutzerdefinierten Schaltflächen ein. Ich habe einen Screenshot für meine App erstellt und erwähnt, dass wenn ich "wrap_content" für die Breite und Höhe der Schaltfläche verwende, die Schaltfläche gestreckt ist. Wenn ich eine Größe in dp festlege, wird es nett aussehen (zB: in meinem MDPI-Ordner habe ich 48x48px Icons, also 48dp in Breite und Höhe). Kannst du mir bitte erklären warum?

%Vor%

Der obige Code zeigt meine XML-Datei. Sie können diesen Link überprüfen, um einen Screenshot für mein Problem zu sehen: Ссылка

    
Anthony 09.10.2012, 07:00
quelle

3 Antworten

5

Es erscheint gestreckt, weil "wrap_content" bedeutet, dass Android das Bild an das umschließende Layout anpassen wird.

In Ihrem Fall benötigen die Schaltflächen im linearen Layout so viel Platz wie möglich innerhalb des Layouts. Wenn Sie also die Höhe und Breite der Schaltflächen nicht festlegen, werden sie sich ausdehnen, um den vom linearen Layout belegten Platz auszufüllen. Folglich werden die Hintergrundbilder auch mit den Schaltflächen angezeigt.

Aber wenn Sie die Tastengröße auf 48dp einstellen, müssen die Bilder nicht gedehnt werden, da sie auch 48px groß sind und daher gut aussehen.

Sehen Sie sich die ausgezeichneten offiziellen Entwicklerdokumente für weitere Informationen zu Layouts an: Ссылка

und um zu erfahren, wie Sie Ihre Layouts und Assets für mehrere Android-Bildschirmgrößen und -auflösungen verwalten können:

Ссылка

    
Anup Cowkur 09.10.2012, 07:12
quelle
17

Sie können den Hintergrundbereich des Buttons vermeiden, indem Sie minWidth & amp; minHeight auf 0dp

%Vor%     
MCH 20.05.2014 12:17
quelle
7

Es ist ziemlich einfach:

  • Verwenden Sie ImageButton anstelle von Button
  • Setzen Sie das Hintergrund Attribut auf null
  • legen Sie das Attribut src fest
  • Setzen Sie das Attribut scaleType auf centerInside

Arbeitsbeispiel:

%Vor%

Hinweis: Sie können auch einen dp Wert anstelle von " wrap_content " verwenden.

Ich hoffe, es hilft.

    
funcoder 30.07.2015 09:37
quelle