可绘制对象周围出现奇怪的黑色边框 android XML
Strange Black border around drawable android XML
我正在绘制自定义 header 以在我的应用程序中输入信息。我在 xml 中绘制了 2 个形状,然后将它们放置在布局中。然后将该布局放入我的主布局中,使用 .但是,每个包含的 header 周围都有一个黑色边框。这似乎只适用于 api 21 台设备。这是怎么回事?
circle.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/icon_background"
android:shape="oval">
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
<solid
android:color="@color/color_primary"
android:angle="270">
</solid>
</shape>
line.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="5dp"
android:color="@color/color_primary"/>
<size android:height="10dp" />
</shape>
Header布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_height="5dp"
android:layout_width="match_parent"
android:layout_alignParentStart="true"
android:layout_marginTop="14dp"
android:src="@drawable/line">
</ImageView>
<ImageView
android:id="@+id/circle"
android:layout_height="32dp"
android:layout_width="32dp"
android:src="@drawable/circle"
android:layout_centerHorizontal="true">
</ImageView>
<ImageView
android:id="@+id/header_icon"
android:layout_height="32dp"
android:layout_width="32dp"
android:src="@drawable/ic_action_car"
android:layout_centerHorizontal="true">
</ImageView>
</RelativeLayout>
包含布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/header_horizontal_margin"
android:paddingRight="@dimen/header_horizontal_margin"
android:paddingTop="@dimen/header_vertical_margin"
android:paddingBottom="@dimen/header_vertical_margin">
<include
android:id="@+id/carSpecs"
layout="@layout/header"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</include>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/header_vertical_margin"
android:paddingBottom="@dimen/header_vertical_margin"
android:layout_gravity="center_horizontal"
android:id="@+id/vehicleSpinner"
android:layout_below="@+id/carSpecs"/> ...
尝试将此 <solid android:color="#00FFFFFF"/>
添加到您的 line.xml。
删除这个:
<stroke android:width="5dp"
android:color="@color/color_primary"/>
来自line.xml
这是添加额外的 "border",使用在您的 colors.xml 中定义的 color_primary
颜色资源。
想通了!使用与@Der Golem 相同的基础,我删除了
<size android:height="10dp" />
来自 line.xml。由于中风是我收到边框的一半大小。感谢大家的帮助!
我正在绘制自定义 header 以在我的应用程序中输入信息。我在 xml 中绘制了 2 个形状,然后将它们放置在布局中。然后将该布局放入我的主布局中,使用 .但是,每个包含的 header 周围都有一个黑色边框。这似乎只适用于 api 21 台设备。这是怎么回事?
circle.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/icon_background"
android:shape="oval">
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
<solid
android:color="@color/color_primary"
android:angle="270">
</solid>
</shape>
line.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="5dp"
android:color="@color/color_primary"/>
<size android:height="10dp" />
</shape>
Header布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_height="5dp"
android:layout_width="match_parent"
android:layout_alignParentStart="true"
android:layout_marginTop="14dp"
android:src="@drawable/line">
</ImageView>
<ImageView
android:id="@+id/circle"
android:layout_height="32dp"
android:layout_width="32dp"
android:src="@drawable/circle"
android:layout_centerHorizontal="true">
</ImageView>
<ImageView
android:id="@+id/header_icon"
android:layout_height="32dp"
android:layout_width="32dp"
android:src="@drawable/ic_action_car"
android:layout_centerHorizontal="true">
</ImageView>
</RelativeLayout>
包含布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/header_horizontal_margin"
android:paddingRight="@dimen/header_horizontal_margin"
android:paddingTop="@dimen/header_vertical_margin"
android:paddingBottom="@dimen/header_vertical_margin">
<include
android:id="@+id/carSpecs"
layout="@layout/header"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</include>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/header_vertical_margin"
android:paddingBottom="@dimen/header_vertical_margin"
android:layout_gravity="center_horizontal"
android:id="@+id/vehicleSpinner"
android:layout_below="@+id/carSpecs"/> ...
尝试将此 <solid android:color="#00FFFFFF"/>
添加到您的 line.xml。
删除这个:
<stroke android:width="5dp"
android:color="@color/color_primary"/>
来自line.xml
这是添加额外的 "border",使用在您的 colors.xml 中定义的 color_primary
颜色资源。
想通了!使用与@Der Golem 相同的基础,我删除了
<size android:height="10dp" />
来自 line.xml。由于中风是我收到边框的一半大小。感谢大家的帮助!