es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible crear una forma de Android con un borde degradado y una parte central transparente?

Estoy buscando hacer el centro del botón transparente con el borde degradado, no estoy seguro de cómo se puede hacer esto utilizando layer-list. Sé que la misma pregunta ya existe, pero la respuesta no fue suficiente ya que solo estaban agregando otro degradado interno. El centro debe ser transparente para que se pueda ver el fondo degradado.

Este es el código de mi botón actual que tiene mi fondo para el centro.

“`












Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que la parte media del botón sea transparente con un borde degradado utilizando layer-list, puedes agregar otro elemento en la layer-list con una forma de dibujo transparente y un trazo con un color degradado. El orden de los elementos en la layer-list debe ser tal que la forma transparente esté sobre el fondo.

    Aquí tienes un código de ejemplo:

    <layer-list>
        <item>
            <shape android:shape="rectangle" android:innerradius="8dp">
                <corners android:radius="@dimen/secondary_button_roundness"></corners>
                <gradient android:startx="0" android:starty="0" android:endx="20" android:endy="0" android:endcolor="@color/primaryGradientStart" android:startcolor="@color/primaryGradientEnd" android:angle="180">
                </gradient>
            </shape>
        </item>
        <item android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp">
            <shape android:shape="rectangle" android:innerradius="8dp">
                <corners android:radius="@dimen/secondary_button_roundness"></corners>
                <solid android:color="@color/Background"></solid>
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle" android:innerradius="8dp">
                <corners android:radius="@dimen/secondary_button_roundness"></corners>
                <stroke android:width="2dp" android:color="@color/border_gradient"></stroke>
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle" android:innerradius="8dp">
                <corners android:radius="@dimen/secondary_button_roundness"></corners>
                <gradient android:startx="0" android:starty="0" android:endx="20" android:endy="0" android:endcolor="@color/primaryGradientStart" android:startcolor="@color/primaryGradientEnd" android:angle="180">
                </gradient>
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle">
                <solid android:color="@android:color/transparent"></solid>
                <stroke android:width="2dp" android:color="@color/border_gradient"></stroke>
            </shape>
        </item>
    </layer-list>
    

    En este código, se agrega el cuarto elemento con la forma degradada para cubrir el área transparente en el medio. El quinto elemento se agrega en la parte superior con una forma transparente y un trazo degradado para crear el borde. El color del borde está definido en el archivo de recursos de colores.

Comments are closed.