[英]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值,因為它是絕對值,並且分辨率因模型而異。
我該怎么做才能解決這個問題?
對於支持多個具有不同分辨率的設備的響應式設計,您不能具有靜態和負值。
而是可以將TableLayout
與TableRow
和LinearLayout.
試試看:
<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.