Estoy tratando de construir un custom view android y aplicar un fondo de imagen que es una capa de la lista.

La capa de la lista tiene dos elementos:

  1. Un color de fondo (blanco)
  2. De una forma simple dibujable que es un acarició rectángulo con esquinas redondeadas

aquí está la imagen 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>

La vista personalizada es una clase derving de Android.vista.La vista que tiene actualmente NINGUNA función excepto la de medición requeridas sobrecargas.

Estoy aplicando el fondo en la definición de la vista en una actividad de diseño:

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

Lo que esperar a ver es una vista con un fondo blanco y un borde verde. Lo que me en realidad ver cuando me implementar el proyecto es una vista con un fondo negro y un borde verde.

Curiosamente aparece correctamente en la vista previa del diseñador en Android Studio. Es sólo cuando me instalarla en un dispositivo que se hace negro.

Que me estoy perdiendo algo que es obvio aquí?

OriginalEl autor pdriegen | 2013-11-01

1 Comentario

  1. 18

    Para los interesados, he encontrado la solución.

    Me había definido la forma de la imagen como la inclusión de sólo un golpe de definición. Sin ningún otro tipo de entradas, esto hace que el color de relleno que se infiere como negro.

    Al final, una Capa de la Lista desplegable no es necesaria en absoluto. En su lugar, agregue un solid de relleno de la definición de la forma de la capa con el color Transparente y funciona muy bien.

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

    OriginalEl autor pdriegen

Dejar respuesta

Please enter your comment!
Please enter your name here