[英]Button gets bigger when background is set - How to make it small
在設置背景之前,我想讓我的按鈕縮小或恢復正常。
我知道使用背景色調將使用相同的背景顏色,但我的問題是我在背景上使用選擇器。 當選擇器設置為按鈕背景時,它變得更寬。 當我將背景切換到backgroundtint時,顏色變得不同(例如,對我來說是紫羅蘭色)並且在按下時不會改變顏色。 填充不能通過設置負值或正值來解決問題。 我還可以做些什么 ? 我的目標是我的按鈕在點擊時會改變顏色,但它的高度是窄/默認大小,就像換行內容一樣。
這是我的按鈕示例代碼
<Button
android:text="Add"
android:fontFamily="@string/fontFamily"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/btnInformantsAdd"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/textSizeCommon"
android:background="@drawable/ButtonSelectorBlue"
android:paddingTop="-10dp"
android:paddingBottom="-10dp"
android:layout_gravity="center"
android:layout_marginTop="@dimen/marginTop1"
android:layout_marginBottom="@dimen/marginTop1" />
選擇器XML代碼
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bluegreendark_light" />
<padding android:left="10dp"
android:top="@dimen/paddingSide1"
android:right="10dp"
android:bottom="@dimen/paddingSide1"/>
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
</item>
<item android:state_pressed="false">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bluegreendark"/>
<padding android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"/>
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
設置背景時按鈕會變大
按鈕不會變大。
這是按鈕的默認背景,你可以看到它周圍是透明的顏色。
但是當您將按鈕的背景更改為ButtonSelectorBlue
文件時,沒有透明的顏色,因此它會讓您認為它變得更大。
你可以看到這些代碼:
<Button
android:text="Add"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/btnInformantsAdd"
android:gravity="center"
android:textColor="#e7dbdb"
android:textSize="20dp"
android:background="@drawable/button_selector_blue"
android:paddingTop="-10dp"
android:paddingBottom="-10dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" />
<Button
android:text="Add"
android:id="@+id/bt"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="center"
android:textColor="#282828"
android:textSize="20dp"
android:onClick="OnClick"
android:layout_gravity="center" />
兩個按鈕,第一個背景是你的ButtonSelectorBlue
文件,第二個是默認的,看到這張圖片:
它們的大小相同。
因此,您需要在選擇器文件的外圍添加透明顏色,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bluegreendark_light" />
<stroke android:color="#00000000"
android:width="10dp"/>
<padding android:left="10dp"
android:top="@dimen/paddingSide1"
android:right="10dp"
android:bottom="@dimen/paddingSide1"/>
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
</item>
<item android:state_pressed="false">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/bluegreendark"/>
<stroke android:color="#00000000"
android:width="10dp"/>
<padding android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"/>
<corners android:radius="5dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
最后,預覽:
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.