簡體   English   中英

如何在Android按鈕中放置可繪制對象?

[英]How to position a drawable inside an android button?

我在Android中遇到一些設計問題。 我想做一些帶有內部可繪制對象的按鈕,並將該可繪制對象放在文本上方。 從某種意義上說,我成功做到了這一點,這為我提供了以下界面。

接口

為了討論代碼,我使用的是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值,因為它是絕對值,並且分辨率因模型而異。

我該怎么做才能解決這個問題?

對於支持多個具有不同分辨率的設備的響應式設計,您不能具有靜態和負值。

而是可以將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>

具有不同分辨率和高度-寬度的所有設備都將支持此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM