Android 设置背景时按钮变大-如何使其变小
我想让我的按钮变窄或回到正常之前,它与背景设置 我知道使用背景色将在相同背景色的情况下工作,但我的问题是我在背景上使用选择器。当选择器设置为按钮背景时,它变得更宽。当我将背景色切换为背景色时,颜色会变得不同(例如,对我来说是紫色),按下按钮时颜色不会改变。通过设置负值或正值,填充不起作用。我还能做什么?我的目标是我的按钮在点击时会改变颜色,但它的高度是窄的/默认大小,就像包裹内容一样 这是我的按钮示例代码Android 设置背景时按钮变大-如何使其变小,android,xamarin,button,xamarin.android,Android,Xamarin,Button,Xamarin.android,我想让我的按钮变窄或回到正常之前,它与背景设置 我知道使用背景色将在相同背景色的情况下工作,但我的问题是我在背景上使用选择器。当选择器设置为按钮背景时,它变得更宽。当我将背景色切换为背景色时,颜色会变得不同(例如,对我来说是紫色),按下按钮时颜色不会改变。通过设置负值或正值,填充不起作用。我还能做什么?我的目标是我的按钮在点击时会改变颜色,但它的高度是窄的/默认大小,就像包裹内容一样 这是我的按钮示例代码 <Button android:text="Add" android
<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>
设置背景时,按钮变大
按钮没有变大
这是按钮的默认背景,你可以看到它周围是一个透明的颜色 但是,当您将按钮的背景更改为
buttonSelectBlue
文件时,没有透明颜色,因此您会认为它变大了
您可以看到以下代码:
<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" />
最后,预览:
结果:
按钮的
minHeight
设置为48dp,以便轻松按下。不要改变这一点。如果你想让它们看起来很窄,可以使用一个
可绘制的(默认的可绘制就是这样做的)。Hi@EugenPechanec。我试图将minHeight设置为48,但什么也没发生。然后我把它设为10dp,只是为了测试一些东西,结果很神奇。如果我让它保持这样的状态,我的代码中会有麻烦吗?我尝试将文本大小更改为50,按钮大小与文本大小匹配,就好像wrap\u内容现在真的可以正常工作一样minHeight=“48dp”
是默认值,这就是为什么没有任何更改。如果将其设置为较低的数字,则可单击的空间会更小。按钮的高度计算为minHeight
的最大值和内容高度。但你不希望点击空间小于48dp,这将很难用手指点击。这就是为什么您应该保持minHeight=“48dp”
。使用
可绘制按钮周围的
在实际可绘制按钮周围添加间距。
<?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>