如何在不改变尺寸的情况下更改按钮的颜色?

时间:2017-03-14 13:24:19

标签: android xaml xamarin visual-studio-2017

我对Android开发很新,我在更改按钮颜色方面遇到了问题。

 <Button
            android:id="@+id/SignUp"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="Sign Up"
            android:textColor="#ff0000" />
        <Button
            android:id="@+id/SignIn"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:background="#00ff00"
            android:layout_height="wrap_content"
            android:text="Sign In"
            android:textColor="#ff0000" />

这是我遇到麻烦的按钮。我改变了背景颜色,但它改变了按钮的大小。

enter image description here

仅供参考,左按钮是我希望我的按钮看起来像,但在更改颜色后,右键是我得到的。

我已经快速寻找一个解决方案,但我发现的只是告诉我要改变我已经完成的背景颜色。

那我怎么能看起来像左键呢?我假设它与drawables有关,但老实说我不知道​​我在寻找什么。任何向我指明正确方向的指南或任何东西都会很棒。

谢谢!

4 个答案:

答案 0 :(得分:2)

最简单的答案,使用backgroundTint insted background 这段代码可以使用:

<Button
android:id="@+id/SignIn"
android:layout_width="0dp"
android:layout_weight="1"
android:backgroundTint="#00ff00"
android:layout_height="wrap_content"
android:text="Sign In"
android:textColor="#ff0000" />

答案 1 :(得分:1)

背景属性不仅仅是一种颜色。您正在用纯色替换默认图像。选项是制作自己的图像,或调整高度和宽度属性。

https://developer.android.com/guide/topics/ui/controls/button.html#Style

答案 2 :(得分:0)

你可以把你的按钮放到一个方向是水平的LinearLayout视图中,然后设置按钮的权重是1,宽度是0dp,linearLayout的高度是40dp。

答案 3 :(得分:0)

您在这里做的是用纯色替换图像背景。你应该使用样式。

请尝试这种风格

<style name="SpecialButton" parent="Widget.AppCompat.Button.Colored">
   <item name="colorButtonNormal">#00ff00</item>
   <item name="android:textColorPrimary">#ff0000</item>
</style>

在styles.xml和

<style name="SpecialButton" parent="Widget.AppCompat.Button.Colored">
   <item name="android:colorButtonNormal">#00ff00</item>
   <item name="android:textColorPrimary">#ff0000</item>
</style>

在v21 / styles.xml和

并将此样式应用于按钮。如果这对您有用,请评论,因为我自己没有测试过。