我想在应用手机键盘等活动中放置19个按钮。我正在编写一个简单的计算器。
按钮在android studio xml预览中看起来不错,但是当我在设备按钮上运行我的应用程序时,其大小不同,因此效果不正确。我怎样才能对设备产生同样的效果?
这是我的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".Calcolatrice">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".25"
android:id="@+id/virgola"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/uguale"
android:layout_toStartOf="@+id/uguale"
android:layout_centerHorizontal="true"
android:text="@string/virgola"
android:onClick="virgola" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".25"
android:id="@+id/uguale"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="@string/uguale"
android:onClick="uguale" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/zero"
android:id="@+id/zero"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/virgola"
android:layout_toStartOf="@+id/virgola"
android:onClick="zero" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/piu"
android:layout_above="@+id/uguale"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="@string/piu"
android:onClick="piu" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tre"
android:layout_alignBottom="@+id/piu"
android:layout_toLeftOf="@+id/piu"
android:layout_centerHorizontal="true"
android:layout_toRightOf="@+id/zero"
android:layout_toEndOf="@+id/zero"
android:text="@string/tre"
android:onClick="tre" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/uno"
android:layout_alignTop="@+id/tre"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/uno"
android:onClick="uno" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/due"
android:layout_above="@+id/virgola"
android:layout_toLeftOf="@+id/virgola"
android:layout_toStartOf="@+id/virgola"
android:text="@string/due"
android:onClick="due"
android:layout_marginLeft="0dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/quattro"
android:layout_above="@+id/uno"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/quattro"
android:onClick="quattro" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cinque"
android:layout_centerHorizontal="true"
android:layout_alignTop="@+id/quattro"
android:layout_toRightOf="@+id/uno"
android:layout_toEndOf="@+id/uno"
android:text="@string/cinque"
android:onClick="cinque" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sei"
android:layout_alignTop="@+id/cinque"
android:layout_toRightOf="@+id/due"
android:layout_toEndOf="@+id/due"
android:text="@string/sei"
android:onClick="sei" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/meno"
android:layout_above="@+id/piu"
android:layout_toRightOf="@+id/sei"
android:layout_toEndOf="@+id/sei"
android:text="@string/meno"
android:onClick="meno" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sette"
android:layout_above="@+id/quattro"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/sette"
android:onClick="sette" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/otto"
android:layout_above="@+id/quattro"
android:layout_toRightOf="@+id/sette"
android:layout_toEndOf="@+id/sette"
android:text="@string/otto"
android:onClick="otto" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/nove"
android:layout_above="@+id/sei"
android:layout_toRightOf="@+id/cinque"
android:layout_toEndOf="@+id/cinque"
android:text="@string/nove"
android:onClick="nove" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/per"
android:layout_alignTop="@+id/nove"
android:layout_toRightOf="@+id/sei"
android:layout_toEndOf="@+id/sei"
android:text="@string/per"
android:onClick="moltiplica" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cancella"
android:layout_above="@+id/sette"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/cancella"
android:onClick="cancella" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/piuomeno"
android:layout_alignTop="@+id/cancella"
android:layout_toRightOf="@+id/sette"
android:layout_toEndOf="@+id/sette"
android:text="@string/piuomeno"
android:onClick="piuomeno" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/percento"
android:layout_above="@+id/nove"
android:layout_toRightOf="@+id/otto"
android:layout_toEndOf="@+id/otto"
android:text="@string/percento"
android:onClick="percentuale" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/diviso"
android:layout_alignTop="@+id/percento"
android:layout_toRightOf="@+id/nove"
android:layout_toEndOf="@+id/nove"
android:text="@string/diviso"
android:onClick="diviso" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/textView"
android:layout_above="@+id/cancella"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/diviso"
android:layout_alignEnd="@+id/diviso"
android:gravity="right"
android:textSize="50sp" />
</RelativeLayout>
id为零的按钮必须具有width = screen_width / 2,而其他必须具有width = screen_width / 4。
答案 0 :(得分:0)
试试这个(注意:设置适当的id和文字)
我使用Linearlayout和weight
属性来设置宽度
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="1"
android:onClick="cancella" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>