如何在不改变按钮大小的情况下改变按钮的颜色?
How can I change the colour of a Button without changing its size?
我是 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" />
这是我遇到问题的按钮。我改变了背景颜色,但它改变了我的按钮的大小。
仅供参考,左边的按钮是我希望按钮的样子,但在更改颜色后,右边的按钮是我得到的。
我快速浏览了一下以尝试找到解决方案,但我发现的只是告诉我更改我已经完成的背景颜色。
那么我怎样才能让它看起来像左键呢?我假设它与可绘制对象有关,但老实说我不知道我在寻找什么。任何指南或任何能为我指明正确方向的东西都会很棒。
谢谢!
背景属性可以不仅仅是一种颜色。您正在用纯色替换默认图像。选项是制作自己的图像,或者调整高度和宽度属性。
https://developer.android.com/guide/topics/ui/controls/button.html#Style
您可以将按钮放入水平方向的LinearLayout视图中,然后设置按钮的权重为1,宽度为0dp,linearLayout的高度为40dp。
您在这里所做的是用纯色替换图像背景。您应该改用样式。
请尝试这种风格
<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 和
并将此样式应用于按钮。请评论这是否对您有用,因为我自己还没有测试过。
最简单的答案,用backgroundTint
代替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" />
我是 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" />
这是我遇到问题的按钮。我改变了背景颜色,但它改变了我的按钮的大小。
仅供参考,左边的按钮是我希望按钮的样子,但在更改颜色后,右边的按钮是我得到的。
我快速浏览了一下以尝试找到解决方案,但我发现的只是告诉我更改我已经完成的背景颜色。
那么我怎样才能让它看起来像左键呢?我假设它与可绘制对象有关,但老实说我不知道我在寻找什么。任何指南或任何能为我指明正确方向的东西都会很棒。
谢谢!
背景属性可以不仅仅是一种颜色。您正在用纯色替换默认图像。选项是制作自己的图像,或者调整高度和宽度属性。
https://developer.android.com/guide/topics/ui/controls/button.html#Style
您可以将按钮放入水平方向的LinearLayout视图中,然后设置按钮的权重为1,宽度为0dp,linearLayout的高度为40dp。
您在这里所做的是用纯色替换图像背景。您应该改用样式。
请尝试这种风格
<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 和
并将此样式应用于按钮。请评论这是否对您有用,因为我自己还没有测试过。
最简单的答案,用backgroundTint
代替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" />