Android 具有图层列表背景的自定义视图可绘制渲染黑屏
我正在尝试构建一个定制的android视图,并应用一个背景可绘制的图层列表 图层列表有两项:Android 具有图层列表背景的自定义视图可绘制渲染黑屏,android,android-view,android-drawable,Android,Android View,Android Drawable,我正在尝试构建一个定制的android视图,并应用一个背景可绘制的图层列表 图层列表有两项: 背景色(白色) 可绘制的简单形状,是带圆角的笔划矩形 以下是可绘制的xml: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:
<?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派生的一个类,除了所需的度量重载之外,该类目前没有任何功能
我正在活动布局的视图定义中应用背景:
<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的designer预览中。只有当我将其部署到设备时,它才会呈现黑色
我是否遗漏了一些显而易见的东西?对于那些感兴趣的人,我找到了解决方案 我已将可绘制的形状定义为仅包含笔划定义。如果没有任何其他输入,这将导致填充颜色推断为黑色 最后,根本不需要图层列表可绘制。相反,使用透明颜色将
实体
填充定义添加到形状层,效果很好
<?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>
试试这个。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/white" />
</item>
<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>