将可绘制资产配置为具有与标准android背景相同的背景色

时间:2019-07-12 05:26:18

标签: android android-layout

这是我的按钮布局

<TextView android:id="@+id/notification_button"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"

    android:paddingEnd="8dp"
    android:paddingStart="8dp"

    android:background="@drawable/blue_outlined_rect"

    android:ellipsize="end"
    android:gravity="center"
    android:maxLines="1"

    android:textAppearance="@style/TextAppearance"
    tools:text="View Item" />

背景由可绘制资产呈现。

可绘制

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

    <stroke
        android:width="1dp"
        android:color="@color/color_blue" />
</shape>

如您所见,按钮背景与文本背景不同。我正在使用可绘制资源来渲染矩形的蓝色轮廓

我希望按钮背景与视图背景相同。我该如何实现?

我尝试如下更改以下属性

<solid android:color="?android:attr/background"/>

<solid android:color="?android:background"/>

我不知道我在做什么错。

Button

1 个答案:

答案 0 :(得分:2)

一种解决方案,也许您可​​以为按钮使用透明背景。

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

    <stroke
        android:width="1dp"
        android:color="@color/color_blue" />
</shape>