gpt4 book ai didi

android - 如何使形状具有已定义颜色的 50% alpha 的纯色?

转载 作者:行者123 更新时间:2023-12-04 23:48:53 24 4
gpt4 key购买 nike

我在可绘制资源文件中定义了一个形状,用作我的 TextViews (scrim_background.xml) 的背景:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/colorAccent"/>
</shape>

我的 colors.xml 是:
<?xml version="1.0" encoding="utf-8"?>
<resources>


<color name="white">#fff</color>
<color name="light_text">#dfff</color>

<color name="colorPrimary">@color/primary</color>
<color name="colorPrimaryDark">@color/primary_dark</color>

<color name="colorAccent">@color/accent</color>


<color name="primary">#F44336</color>
<color name="primary_dark">#D32F2F</color>
<color name="primary_light">#FFCDD2</color>
<color name="accent">#607D8B</color>

<color name="accentAlpha">#DD607D8B</color>
<color name="primary_text">#212121</color>
<color name="secondary_text">#757575</color>
<color name="icons">#FFFFFF</color>
<color name="divider">#BDBDBD</color>

</resources>

我的 TextView 的样式是:
<style name="BeerItemTextStyleTitle" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/light_text</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/scrim_background</item>
<item name="android:gravity">start|center_vertical</item>
<item name="android:paddingStart">@dimen/space_small</item>
<item name="android:paddingEnd">@dimen/space_small</item>
</style>

我希望背景颜色具有 colorAccent 的 50% 透明度。

就像是:
<color name="accent">#88607D8B</color>

但我不想修复这些值,因为我一直在更改配色方案。

我尝试将 alpha 直接添加到我的 TextView,例如:
<item name="android:alpha">50</item>

但这不合适,因为它也为文本颜色添加了透明度。我希望只有背景颜色是透明的。

我不想以编程方式执行此操作,因为这样我必须找到我所有的 TextView 并一一更改。

- 编辑 -

我试图创建一个名为 bitmap_scrim_background 的元资源文件,即:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:src="@drawable/scrim_background">
</bitmap>
</item>
</layer-list>


<style name="BeerItemTextStyleTitle" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/light_text</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/bitmap_scrim_background</item>
<item name="android:gravity">start|center_vertical</item>
<item name="android:paddingStart">@dimen/space_small</item>
<item name="android:paddingEnd">@dimen/space_small</item>
</style>

但我认为事情在 Android 中不会这样工作......它抛出:
android.view.InflateException: Binary XML file line #36: Binary XML file line #36: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class TextView

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <bitmap> requires a valid 'src' attribute

最佳答案

我猜稀松布背景是一个可绘制的 xml 文件。你可以在你的drawable文件中使用accentColor。

例如

<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:centerY="0.3"
android:startColor="@color/accent"
android:endColor="#00000000"
android:type="linear"/>
</shape>

关于android - 如何使形状具有已定义颜色的 50% alpha 的纯色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620500/

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