【问题标题】:Gradient color not applied to button in android studio渐变颜色不适用于android studio中的按钮
【发布时间】:2021-04-17 11:57:57
【问题描述】:

我在drawable中创建了一个gradient_file.xml

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

    <gradient
        android:startColor="@color/white"
        android:endColor="@color/black"
        android:angle="45"
        android:type="linear" />
</shape>

我已将其应用于布局中的按钮

<Button
    android:id="@+id/button2"
    android:layout_width="0dp"
    android:layout_height="100dp"
    android:background="@drawable/gradient_file"
    android:text="Button"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.243" />

这是我得到的结果:

颜色应该不同。我已经重建了项目,但颜色在预览和模拟器中都没有改变。

【问题讨论】:

标签: android


【解决方案1】:

在themes.xml中,改变

<style name="Theme.YourApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

<style name="Theme.YourApp" parent="Theme.AppCompat.DayNight.DarkActionBar">

那么提交的drawable就可以工作了!

【讨论】:

  • 它是 AppCompat,而不是 AppCompact。 (为你修好了)
【解决方案2】:

我也用这个解决了这个问题。 转到主题.xml 并以此改变原色, @null

【讨论】:

    【解决方案3】:

    它被themes.xml 文件中的颜色覆盖。转到您的themes.xml 文件(在res/values/themes 中)并替换

     <item name="colorPrimary">@color/purple_500</item>
    

    <item name="colorPrimary">@null</item>
    

    查看您的渐变效果。

    编辑:我不确定这是为什么...可能是较新的 android studio 版本中的错误?但我能够让您的按钮渐变与此解决方案一起使用

    【讨论】:

    • 谢谢它的工作。是的,你是对的。我的配色方案应该覆盖默认提供的方案。
    • 你能告诉我另一种不需要我改变主题并进行这项工作的方法吗?
    • 因为使用该原色的视图将失去该颜色。所以还有其他方法吗?
    • @M.Ahmed - 我希望我知道。就像我提到的那样,我不确定为什么会发生这种情况,据我所知,这似乎是较新版本的 android studio 中的一个问题。
    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2013-04-27
    • 2022-01-02
    • 2012-12-28
    • 2019-07-13
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多