Wie kann ich die ImageView
Breite und Höhe eines Programms programmgesteuert einstellen ?
java
android
android-emulator
android-widget
praveenb
quelle
quelle
Antworten:
Es kann zu spät sein, aber für andere, die das gleiche Problem haben, die Höhe der ImageView festzulegen:
Hoffe das hilft.
Wichtig. Wenn Sie die Höhe einstellen, nachdem das Layout bereits angelegt wurde, rufen Sie auch Folgendes auf:
quelle
image_view.getLayoutParams().height = RelativeLayout.LayoutParams.WRAP_CONTENT
.. Wenn das übergeordnete Element der AnsichtLinearLayout
durch das ersetztRelativeLayout
wirdWenn Ihre Bildansicht dynamisch ist, schlägt die Antwort mit getLayout mit einer Null-Ausnahme fehl.
In diesem Fall ist der richtige Weg:
quelle
ImageView
verschwindet. Der Trick besteht darin, den Layout-Teil (dh<this_part_here>.LayoutParams
) so zu gestalten, wie er dem übergeordneten Teil desImageView
ist. Wenn Sie beispielsweise IhrImageView
innerhalb einesTableRow
innerhalb eines platziert habenTableLayout
, sollten Sie es als habenTableRow.LayoutParams
.Diese einfache Möglichkeit, Ihre Aufgabe zu erledigen:
und eine andere Möglichkeit, wenn Sie die Bildschirmgröße in Höhe und Breite angeben möchten, verwenden Sie den folgenden Code:
hoffe, nutzen Sie voll für Sie.
quelle
int
Variablen, wenn sie nicht anderweitig wiederverwendet werden? Scheint unnötig, aber ich weiß nicht viel darüber.Ich habe dieses mit
pixel
und gespieltdp
.So stellen Sie nach Pixel ein :
So stellen Sie mit dp ein :
Hoffe das würde dir helfen.
quelle
Wenn Sie Ihre Breite oder Höhe auf
match_parent
(so groß wie das übergeordnete Element) oderwrap_content
(groß genug, um auf den eigenen internen Inhalt zu passen ) einstellen müssen, haben SieViewGroup.LayoutParams
diese beiden Konstanten:Oder Sie können sie wie in Hakem Zaieds Antwort einstellen :
quelle
Sie können den Wert für alle Fälle festlegen.
quelle
Der beste und einfachste Weg, eine Schaltfläche dynamisch einzustellen, ist
Die oben angegebene Höhe und Breite sind in Pixel px angegeben . 45 ist die Höhe in dp und 42 ist die Breite in dp .
Wenn Sie beispielsweise Ihre Schaltfläche in einer TableRow in einem TableLayout platziert haben, sollten Sie sie als TableRow.LayoutParams haben
quelle
Erstellen Sie einfach ein LayoutParams-Objekt und weisen Sie es Ihrer imageView zu
quelle
Gibt den Höhenwert in Pixel zurück. Sie müssen zuerst die Bildschirmabmessungen ermitteln, um die Werte richtig einzustellen.
Nachdem Sie die Bildschirmabmessungen erhalten haben, können Sie die Breite und Höhe der Bildansicht mit den richtigen Rändern festlegen.
quelle
Um ImageView und Höhe programmgesteuert einzustellen, können Sie dies tun
quelle
Kotlin
quelle
Stellen Sie in dem Szenario, in dem die Widgetgröße programmgesteuert festgelegt werden muss, die folgenden Regeln sicher.
LayoutParam
das Layout fest, in dem Sie diese Ansicht hinzufügen . In meinem Fall füge ich hinzu,TableRow
also musste ich tunTableRow.LayoutParams
final float scale = getResources().getDisplayMetrics().density; int dpWidthInPx = (int) (17 * scale); int dpHeightInPx = (int) (17 * scale);
TableRow.LayoutParams deletelayoutParams = new TableRow.LayoutParams(dpWidthInPx, dpHeightInPx); button.setLayoutParams(deletelayoutParams); tableRow.addView(button, 1);
quelle
Wenn Sie das Bild nur in die Bildansicht einpassen möchten, können Sie "Inhalt umbrechen" in der Eigenschaft "Höhe und Breite" mit Skalierungstyp verwenden. Wenn Sie jedoch manuell festlegen möchten, müssen Sie LayoutParams verwenden.
Layoutparams ist effizient, um die Höhe und Breite des Layouts programmgesteuert einzustellen.
quelle
quelle