Einstellen der Größe der Schaltfläche entsprechend der Größe des Displays in Android Studio
Ich bin neu in der android Entwicklung, und ich mache einen Taschenrechner in android studio. Mein Rechner funktioniert einwandfrei, aber es isa problem mit seinem layout installierte ich es auf meinem tablet und die Tasten waren sehr klein als ich Sie in Android Studio auf einem emulator, die button-Größe nicht ändern, und brauchen Hilfe, so dass die Größe der Schaltfläche erhöht sich die Bildschirmgröße ändert.
Meinen Taschenrechner design in Android Studio
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="#ff000000">
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/clear"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="110dp"
android:background="@drawable/clear_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/plus_minus"
android:layout_alignBottom="@+id/clear"
android:layout_toRightOf="@+id/clear"
android:layout_toEndOf="@+id/clear"
android:layout_marginLeft="-11dp"
android:background="@drawable/pm_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/per"
android:layout_alignBottom="@+id/plus_minus"
android:layout_toRightOf="@+id/plus_minus"
android:layout_toEndOf="@+id/plus_minus"
android:layout_marginLeft="-11dp"
android:background="@drawable/per_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/div"
android:layout_alignTop="@+id/per"
android:layout_toRightOf="@+id/per"
android:layout_toEndOf="@+id/per"
android:layout_marginLeft="-11dp"
android:background="@drawable/div_btn"
android:layout_alignParentRight="false" />
<TextView
android:layout_width="fill_parent"
android:layout_height="70dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/disp"
android:layout_above="@+id/plus_minus"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textColor="@android:color/white"
android:textSize="32sp"
android:inputType="none"
android:textStyle="normal"
android:gravity="right" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/seven"
android:layout_below="@+id/clear"
android:layout_toLeftOf="@+id/plus_minus"
android:layout_toStartOf="@+id/plus_minus"
android:layout_marginTop="-10dp"
android:layout_alignParentTop="false"
android:layout_alignParentLeft="true"
android:background="@drawable/seven_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/eight"
android:layout_alignTop="@+id/seven"
android:layout_alignLeft="@+id/plus_minus"
android:layout_alignStart="@+id/plus_minus"
android:background="@drawable/eight_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/nine"
android:layout_alignBottom="@+id/seven"
android:layout_alignLeft="@+id/per"
android:layout_alignStart="@+id/per"
android:background="@drawable/nine_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/mul"
android:layout_alignTop="@+id/nine"
android:layout_alignLeft="@+id/div"
android:layout_alignStart="@+id/div"
android:background="@drawable/mul_btn" />
<Button
android:layout_width="103dp"
android:layout_height="90dp"
android:id="@+id/four"
android:layout_below="@+id/seven"
android:layout_alignRight="@+id/seven"
android:layout_alignEnd="@+id/seven"
android:layout_marginTop="-10dp"
android:layout_alignParentLeft="false"
android:background="@drawable/four_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/five"
android:layout_alignBottom="@+id/four"
android:layout_alignLeft="@+id/eight"
android:layout_alignStart="@+id/eight"
android:background="@drawable/five_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/six"
android:layout_alignTop="@+id/five"
android:layout_alignLeft="@+id/nine"
android:layout_alignStart="@+id/nine"
android:background="@drawable/six_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/sub"
android:layout_toEndOf="@+id/nine"
android:layout_alignTop="@+id/six"
android:layout_alignLeft="@+id/mul"
android:layout_alignStart="@+id/mul"
android:background="@drawable/min_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/one"
android:layout_below="@+id/four"
android:layout_alignLeft="@+id/four"
android:layout_alignStart="@+id/four"
android:layout_marginTop="-10dp"
android:layout_alignParentLeft="false"
android:background="@drawable/one_btn" />
<Button
android:layout_width="203dp"
android:layout_height="90dp"
android:id="@+id/zero"
android:layout_below="@+id/one"
android:layout_alignLeft="@+id/one"
android:layout_alignStart="@+id/one"
android:layout_marginTop="-10dp"
android:background="@drawable/zero_btn"
android:layout_alignParentLeft="true"
android:layout_marginLeft="-7dp" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/two"
android:layout_above="@+id/zero"
android:layout_alignLeft="@+id/five"
android:layout_alignStart="@+id/five"
android:background="@drawable/two_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/three"
android:layout_below="@+id/five"
android:layout_alignLeft="@+id/six"
android:layout_alignStart="@+id/six"
android:layout_marginTop="-10dp"
android:background="@drawable/three_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/add"
android:layout_toEndOf="@+id/three"
android:layout_below="@+id/six"
android:layout_alignLeft="@+id/sub"
android:layout_alignStart="@+id/sub"
android:layout_marginTop="-10dp"
android:background="@drawable/plus_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/dot"
android:layout_below="@+id/two"
android:layout_alignRight="@+id/three"
android:layout_alignEnd="@+id/three"
android:layout_marginTop="-10dp"
android:background="@drawable/dot_btn" />
<Button
android:layout_width="100dp"
android:layout_height="90dp"
android:id="@+id/equ"
android:layout_toEndOf="@+id/dot"
android:layout_below="@+id/three"
android:layout_alignLeft="@+id/add"
android:layout_alignStart="@+id/add"
android:layout_marginTop="-10dp"
android:background="@drawable/equ_btn" />
</RelativeLayout>
- es nicht ändern führen Sie die Breite und Höhe mit festem Wert. Versuchen Sie, mit gewichten
- Wenn Sie angeben, eine Breite von 100dp das Ergebnis sollte auf jedem Gerät angezeigt werden, etwa 0,6 cm / 1,6 cm breit. Wenn ich ein tablet haben, warum würde ich wollen, Riesen buttons? Man kann nicht einfach skaliert das layout bis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie
layout_weight
um das zu erreichen, was Sie wollen, und das wird verwendet werden, durch die Verpackung, die jede Zeile von Schaltflächen in einemLinearLayout
und alle, dieLinearLayouts
plus dieTextView
wird verpackt in einem großenLinearLayout
statt IhreRelativeLayout
wie folgt:UPDATE:
verwenden ImageButtons anstelle von Knöpfen für bessere Skalierbarkeit, und dies ist, wie Sie es verwenden müssen:
Hinweis: hier haben wir geändert:
1-
layout_height
: vonwrap_content
zumatch_parent
.2-
background
: entfernen der drawable(clear_btn) und macht estransparent
.Hinzugefügt:
1-
src
: die Zuordnung zu den drawable(clear_btn).2-
scaleType
: macht esfitCenter
zu machen, Skalen in allen verfügbaren Fläche, ohne zu ruinieren das Bild Skalierbarkeit-Verhältnis.P. S: in Fall, dass Sie wollen, dass die Schaltfläche, mit der sich alle der Bereich Wetter ist es skalierbar oder nicht, ändern
scaleType
ausfitCenter
zufitXY
(möglicherweise müssen Sie die für die "0" - Taste).Buttons
nichtImageButtons
die Ihnen viel bessere Möglichkeiten zur Anpassung der Ansichten, So dass ich empfehlen, dass Sie die Tasten ersetzen mitImageButtons
und ich werde nach einem update enthält die erforderlichen änderungen auf die Tasten.Wenn Sie möchten, um Unterstützung für mehrere Bildschirme nie drag-and-drop und resize Ansichten manuell.
Können Sie überprüfen sowohl die
android:layout_weight
Attribut undLinearLayout
Während der Einstellung der Höhe/Breite eines button in android, mit einer festen Dichte des pixel-Werte resultiert in genauen Größen auf allen Bildschirmen. Mithilfe der Werte für die Breite als
wrap_content
,fill_parent
, GEWICHTE, etc.. wird die Taste suchen Sie nach dem Bildschirm-Auflösungen.Versuchen Sie sich über diesen link mal:- Best Practices für die Benutzeroberfläche
Lösung 1:
nutzen Sie bitte dimens.xml für die Angabe von Breite und Höhe für die Tasten.
für tablet,bitte erstellen Sie den Ordner values-sw600dp,Werte-sw720dp und legte Ihre dimens.xml innen.
Lösung 2:
Ich denke, der Punkt hier ist
<Button> </Button>
im inneren ein Lineares Layout.