gpt4 book ai didi

Android 按钮选择器背景色

转载 作者:太空狗 更新时间:2023-10-29 13:25:00 26 4
gpt4 key购买 nike

我正在尝试为默认和按下状态以及圆角实现具有可配置颜色的按钮。这是我在 SO 上找到的解决方案,似乎在我的真实测试设备上运行良好:

enter image description here

    GradientDrawable gradientStateNormal = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]
{buttonBaseBgColor, buttonBaseBgColor});
gradientStateNormal.setShape(GradientDrawable.RECTANGLE);
gradientStateNormal.setCornerRadius(cornerRadiusPX);

GradientDrawable gradientStatePressed = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]
{colorLight, colorLight});
gradientStatePressed.setShape(GradientDrawable.RECTANGLE);
gradientStatePressed.setCornerRadius(cornerRadiusPX);

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},gradientStatePressed);
states.addState(StateSet.WILD_CARD, gradientStateNormal);
signUpButton.setBackground(states);

但是 Android 4.3 和 4.4 模拟器在按下按钮后都会画出这样的黑角:

enter image description here

请您解释一下这里出了什么问题,这种情况是否会出现在真实设备上,而不仅仅是模拟器?

最佳答案

您可以使用 xml 本身来做到这一点。制作一个 xml 文件,例如:shape.xml,如下所示:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<gradient android:angle="180"
android:startColor="#FFFF00"
android:centerColor="#FFFF00"
android:endColor="#FFFF00"/>

<corners
android:radius="20dp"/>

<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />

<stroke
android:width="2dp"
android:color="#000000" />

</shape>

现在使用此 xml 作为 main.xml 中按钮的背景,如下所示:

 android:background="@drawable/shape

关于Android 按钮选择器背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com