如何在Android按钮内放置一个drawable?

时间:2018-03-05 14:14:02

标签: java android xml

我在Android中遇到了一些设计问题。 我想制作一些内部可绘制的按钮,并将可绘制的内容放在我的文本之上。从某种意义上说,我成功地做到了这一点,它给了我以下界面。

interface

谈谈代码,我正在使用TableLayout,其中我放了两个TableRow,设计如下:

<TableRow
    android:id="@+id/row1"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1" >

    <Button
        android:id="@+id/actu"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="@string/mon_actu"
        android:drawableTop="@drawable/ic_shopping_cart_black_48dp"
        android:paddingTop="100dp"
        android:drawablePadding="-130dp"
        android:gravity="center"/>

    <Button
        android:id="@+id/commerce"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:drawableTop="@drawable/ic_shopping_cart_black_48dp"
        android:paddingTop="100dp"
        android:drawablePadding="-130dp"
        android:text="@string/mes_commerces"
        android:gravity="center" />
</TableRow>

这是我想要的最终结果,但是当我在自己的手机上启动它时,所有图标都在文本上,隐藏它。我想问题来自我的paddingTop和drawablePadding值的值,因为它是绝对值,并且根据模型的分辨率不同。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

对于支持具有不同分辨率的多个设备的响应式设计,您不能具有静态和负值。

而不是TableLayoutTableRowLinearLayout.

一起使用

试一试:

<TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:background="@drawable/ic_shopping_cart_black_48dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Hello World" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:background="@drawable/ic_shopping_cart_black_48dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Hello World" />
            </LinearLayout>

        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:background="@drawable/ic_shopping_cart_black_48dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Hello World" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:background="@drawable/ic_shopping_cart_black_48dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Hello World" />
            </LinearLayout>
        </TableRow>
    </TableLayout>

所有具有不同分辨率和高度宽度的设备都支持此功能。