gpt4 book ai didi

android - 如何为按钮选择器设置不同的主题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:42:35 27 4
gpt4 key购买 nike

如何根据当前的应用主题为按钮选择器设置不同的样式?

这是我的 button_selector.xml

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

<item android:state_pressed="true">
<color android:color="@color/color_theme1"/>
</item>
<!-- pressed -->
<item android:drawable="@color/transparent"/>
<!-- default -->

</selector>

最佳答案

因为您的应用主题颜色在 color.xml 中的 color_primary 中。你可以像这样在你的选择器中使用它。但是你必须创建两个 drawables 文件,一个用于默认状态,另一个用于 selected_state。

button_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--selected/pressed/focused -->
<item android:state_selected="true"
android:drawable="@drawable/button_selected"
/>
<item android:drawable="@drawable/button_default"/>
<!-- default -->

</selector>

button_default.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<!--this is to give gradient effect -->
<gradient android:angle="270"
android:startColor="@color/gray"
android:endColor="#@color/gray"
/>
<!-- this will make corners of button rounded -->
<corners android:topLeftRadius="5dip"
android:bottomRightRadius="5dip"
android:topRightRadius="5dip"
android:bottomLeftRadius="5dip"/>

</shape>

button_selected.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<!--this is to give gradient effect -->
<gradient android:angle="270"
android:startColor="@color/color_primary"
android:endColor="#@color/color_primary"
/>
<!-- this wil make corners of button rounded -->
<corners android:topLeftRadius="5dip"
android:bottomRightRadius="5dip"
android:topRightRadius="5dip"
android:bottomLeftRadius="5dip"/>

</shape>

您还必须以编程方式执行以下操作,以便按钮保持选中状态。

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v.isSelected())
{
v.setSelected(false);
}
else
{
v.setSelected(true);
}
}
});

关于android - 如何为按钮选择器设置不同的主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387423/

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