自定义视图与图层列表背景可绘制呈现黑屏

我试图build立一个自定义的Android视图,并应用一个层叠列表的背景绘制。

层列表有两个项目:

  1. 背景颜色(白色)
  2. 一个简单的形状可绘制,是一个带圆angular的抚摸矩形

这里是可绘制的XML:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/white"/> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="1dp" /> <stroke android:width="2dp" android:color="@color/background_green" /> </shape> </item> </layer-list> 

自定义视图是Android.view.View中的一个类,除了需要的测量重载之外,它目前没有任何function。

我在活动布局的视图定义中应用背景:

 <view android:layout_width="match_parent" android:layout_height="300dp" class="com.example.widget.TestView" android:id="@+id/view2" android:layout_gravity="center_horizontal" android:background="@drawable/rect_sig_cap" android:layout_margin="20dp" /> 

期望看到的是一个带有白色背景和绿色边框的视图。 我部署项目时看到的实际情况是黑色背景和绿色边框。

有趣的是,它在Android Studio的devise器预览中正确显示。 只有当我把它部署到一个黑色的设备。

我在这里错过了很明显的东西吗

Solutions Collecting From Web of "自定义视图与图层列表背景可绘制呈现黑屏"

对于那些感兴趣的,我find了解决办法。

我已经将可绘制的形状定义为仅包含笔画定义。 没有任何其他input,这会导致填充颜色被推断为黑色。

最后,根本不需要Layer-List drawable。 相反,将solid填充定义添加到颜色为透明的形状图层,它工作得很好。

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="@dimen/corner_radius" /> <stroke android:width="1dp" android:color="@color/background_green" /> <solid android:color="@android:color/transparent" /> </shape>