添加新图标后如何自动调整图标大小?

时间:2019-03-08 16:21:38

标签: android xml android-layout

关于问题,我需要您的帮助。 我正在创建一个应用程序,我有9张要在屏幕上水平显示的图像。 Check this image

但是在上面的屏幕截图中,如您所见,我只有8张图像,并且屏幕似乎已满,我想再添加一张编号为9的图像。 这是我的activity_main.xml(垃圾箱链接)

如果您可以向我解释一些信息,而不只是修复它,那将更有帮助。此外,您是否可以提出其他修复建议,这是我正在研究的大学项目。 谢谢您的宝贵时间:)

2 个答案:

答案 0 :(得分:0)

为ImageButton添加另一个属性,使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/newbackground"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="200dp">

        <TextView
            android:id="@+id/scoreText"
            android:layout_width="55dp"
            android:layout_height="50dp"
            android:layout_alignParentTop="true"
            android:text="@string/myScore"
            android:textColor="@android:color/background_light"
            android:textSize="18sp" />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp">

        <ImageButton
            android:id="@+id/number1"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_one" />

        <ImageButton
            android:id="@+id/number2"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_two" />

        <ImageButton
            android:id="@+id/number3"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_three" />

        <ImageButton
            android:id="@+id/number4"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_four" />

        <ImageButton
            android:id="@+id/number5"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_five" />

        <ImageButton
            android:id="@+id/number6"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_six" />

        <ImageButton
            android:id="@+id/number7"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_seven" />

        <ImageButton
            android:id="@+id/number8"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_eight" />

        <ImageButton
            android:id="@+id/number9"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:maxWidth="10dp"
            android:maxHeight="10dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/image_nine" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="220dp"
            android:layout_height="130dp"
            android:maxWidth="130dp"
            android:maxHeight="130dp"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/dice_6" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="130dp"
            android:maxWidth="130dp"
            android:maxHeight="130dp"
            android:scaleType="fitCenter"
            android:layout_weight="1"
            app:srcCompat="@drawable/dice_6" />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/rollButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="109dp"
            android:background="@color/colorAccent"
            android:gravity="center_vertical"
            android:text="@string/rollButton"
            android:textAlignment="center"
            android:textColorLink="@color/colorAccent" />
    </RelativeLayout>
</LinearLayout>

答案 1 :(得分:0)

如果图像是固定的,则可以将LinearLayout宽度(包含图像的宽度)设置为“ match_parent”并添加属性weightSum = 9。这将使其宽度与容器相同。然后将每个图像的宽度设置为0并添加weight = 1。 无论设备屏幕的大小如何,这都会使每个图像的宽度为父图像的1/9。

它看起来像是user9209780的答案。