Ich möchte CheckBox etwas kleiner / größer machen. Wie kann ich das machen?
92
Sie müssen nur die zugehörigen Drawables festlegen und sie im Kontrollkästchen festlegen:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/my_checkbox_background"
android:button="@drawable/my_checkbox" />
Der Trick besteht darin, wie die Drawables eingestellt werden. Hier ist ein gutes Tutorial dazu .
Ab API Level 11 gibt es einen anderen Ansatz:
quelle
Hier ist eine bessere Lösung, die das Zeichenelement nicht ausschneidet und / oder verwischt, sondern nur funktioniert, wenn das Kontrollkästchen keinen Text selbst enthält (Sie können jedoch weiterhin Text verwenden, es ist nur komplizierter, siehe am Ende).
Das Ergebnis:
Wie die vorherige Lösung aussah
scaleX
undscaleY
wie sie aussah:Sie können ein Text-Kontrollkästchen aktivieren, indem Sie ein
TextView
daneben hinzufügen und einen Klick-Listener zum übergeordneten Layout hinzufügen und das Kontrollkästchen dann programmgesteuert auslösen.quelle
Nun, ich habe viele Antworten gefunden, aber sie funktionieren gut ohne Text, wenn wir Text auch mit Kontrollkästchen wie in meiner Benutzeroberfläche benötigen
Hier kann ich gemäß meiner UI-Anforderung TextSize nicht erhöhen. Eine andere Option, die ich ausprobiert habe, ist scaleX und scaleY (Aktivieren Sie das Kontrollkästchen) und die benutzerdefinierte XML-Auswahl mit .png-Bildern (dies führt auch zu Problemen mit unterschiedlichen Bildschirmgrößen).
Mach es in 3 Schritten.
Schritt 1: Kopieren Sie diese drei Vector Drawable in Ihren Drawable-Ordner
checked.xml
un_checked.xml
( Hinweis: Wenn Sie mit Android Studio arbeiten, können Sie diese Vector Drawable auch von dort aus hinzufügen. Klicken Sie mit der rechten Maustaste auf Ihren Drawable-Ordner und dann auf New / Vector Asset, und wählen Sie diese Drawable von dort aus aus. )
Schritt 2: Erstellen Sie einen XML-Selektor für das Kontrollkästchen
check_box_selector.xml
Schritt 3: Aktivieren Sie das Kontrollkästchen
Jetzt ist es wie:
Hoffe es wird helfen!
quelle
android:button="@null"
undandroid:background="@drawable/check_box_selector"
anpassen.ich benutze
android:scaleX="0.70" android:scaleY="0.70"
um die Größe des Kontrollkästchens anzupassen
dann setze ich solche Ränder
um die Position des Kontrollkästchens anzupassen.
quelle
Folgendes habe ich getan:
android:button="@null"
und auch eingestellt
dann in Ihrem Java-Code:
Es funktioniert für mich und hoffentlich funktioniert es für Sie!
quelle
UPDATE : Dies funktioniert nur ab API 17 ...
Um die anderen bereits gegebenen brillanten Antworten zu ergänzen, können Sie das Kontrollkästchen nur so klein machen, wie es die Textgröße zulässt.
Gemäß meiner Antwort auf diese Frage: - Wie können wir das Kontrollkästchen verkleinern? Bitte geben Sie mir eine Idee
CheckBox
leitet seine Höhe sowohl aus dem TEXT als auch aus dem Bild ab.Legen Sie diese Eigenschaften in Ihrem XML fest:
Das funktioniert natürlich nur, wenn Sie keinen Text wollen (hat bei mir funktioniert).
Ohne diese Änderungen
CheckBox
gab mir das einen großen Spielraum um mein Image, wie von Joe erwähntquelle
Sie können die folgende Lösung ausprobieren, um die Größe zu ändern,
custom checkbox
indem Sie die folgenden EigenschaftenCheckbox
in Ihrer Layoutdatei festlegen. Hat für mich gearbeitetFügen Sie der zeichnbaren Datei die folgenden Zeilen hinzu
quelle
Ich habe einen Weg gefunden, dies zu tun, ohne eigene Bilder zu erstellen. Mit anderen Worten wird das Systemabbild skaliert. Ich gebe nicht vor, dass die Lösung perfekt ist; Wenn jemand eine Möglichkeit kennt, einige der Schritte zu verkürzen, werde ich gerne herausfinden, wie.
Zuerst habe ich Folgendes in die Hauptaktivitätsklasse des Projekts (WonActivity) eingefügt. Dies wurde direkt von Stack Overflow übernommen - danke Jungs !
Zweitens habe ich eine Klasse erstellt, um "ein Drawable zu skalieren". Bitte beachten Sie, dass es sich vollständig vom Standard ScaleDrawable unterscheidet.
Schließlich habe ich eine Checkbox-Klasse definiert.
Das ist es. Wenn Sie eine WonCheckBox in Ihre Ansicht einfügen und setHeight () anwenden, hat das Kontrollkästchen die richtige Größe.
quelle
Verwenden Sie diesen Code.
im Layout:
Fügen Sie eine neue Zeichnungsdatei hinzu: my_checkbox.xml
und Ende erstellen 2 zeichnbar:
checkbox_off_background.xml
und auch checkbox_on_background.xml
quelle
Angenommen, Ihre ursprüngliche XML ist:
Entfernen
android:button="@drawable/xml_above"
Sie dann einfach die XML-Datei in Ihrem Kontrollkästchen und skalieren Sie programmierbar in Java (verkleinern Sie die150
Größe auf den gewünschten dp):die
convertDpToPixel
Methode:quelle
Ich konnte keine relevante Antwort für meine Anforderung finden, die ich herausgefunden habe. Diese Antwort bezieht sich also auf das Kontrollkästchen mit dem folgenden Text, bei dem Sie die Größe des Kontrollkästchens zum Zeichnen und des Textes separat ändern möchten.
Sie benötigen zwei PNGs, cb_checked.png und cb_unchechecked.png, die Sie zum zeichnbaren Ordner hinzufügen
Erstellen Sie nun cb_bg_checked.xml
Und cb_bg_unchecked.xml
Erstellen Sie dann eine Selektor-XML-Checkbox.xml
Definieren Sie nun Ihre layout.xml so
quelle
Wenn Sie dem Kontrollkästchen ein benutzerdefiniertes Bild hinzufügen möchten, setzen Sie die Schaltfläche auf null und fügen Sie dem zu lösenden Kontrollkästchen einfach Hintergrund hinzu
quelle