Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android设置按钮,屏幕宽度为/2_Android_Xml_Button - Fatal编程技术网

Android设置按钮,屏幕宽度为/2

Android设置按钮,屏幕宽度为/2,android,xml,button,Android,Xml,Button,我想把19个按钮放在一个类似手机键盘的活动中。我正在编写一个简单的计算器 android studio xml预览版中的按钮看起来不错,但当我在设备上运行应用程序时,按钮的大小不同,因此效果不正确。我怎样才能对设备产生相同的效果 这是我的xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a

我想把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为零的按钮必须具有宽度=屏幕宽度/2,其他按钮必须具有宽度=屏幕宽度/4。

尝试此操作(注意:设置适当的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>



使用
getResources().getDisplayMetrics().widthPixels
获取设备宽度,并相应定义视图宽度。请使用gridview!我想获得这样的效果是的,使用GridLayour/GridView!但是我不能像链接中的图片那样有一个不同宽度的按钮