Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有图层列表背景的自定义视图可绘制渲染黑屏_Android_Android View_Android Drawable - Fatal编程技术网

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:

我正在尝试构建一个定制的android视图,并应用一个背景可绘制的图层列表

图层列表有两项:

  • 背景色(白色)
  • 可绘制的简单形状,是带圆角的笔划矩形
  • 以下是可绘制的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派生的一个类,除了所需的度量重载之外,该类目前没有任何功能

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

    <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>