Градиент обводки с прозрачным фоном

Я пытаюсь добиться чего-то вроде этого, я использовал список слоев в xml следующим образом:

<item>
    <shape android:shape="rectangle" >
        <gradient

            android:centerColor="#4DD0E1"
            android:endColor="#76FF03"

            android:startColor="@color/colorPrimary"
            android:type="linear" />


    </shape>
</item>

<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">


    <shape android:shape="rectangle" >

        <solid android:color="#fff" />
    </shape>
</item>

Here is the layout code, the border of the shape needs to overlap the image.

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginTop="12dp"
        android:background="@android:color/transparent">


        <ImageView
            android:layout_width="100dp"
            android:layout_height="75dp"
            android:layout_centerVertical="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="12dp"
            android:id="@+id/goals_image" />


        <FrameLayout
            android:id="@+id/goals_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"

            android:layout_gravity="center"
            android:clickable="true"

            android:layout_marginLeft="20dp"
            android:layout_marginRight="32dp"
            android:background="#00000000"
            >


            <TextView
                android:id="@+id/goals_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15dp"
                android:text="Lose Weight"
                android:textColor="@color/black"
                android:layout_margin="40dp"

                />


        </FrameLayout>

    </RelativeLayout>

но если я сделаю фон прозрачным, фон фигур станет полностью цветным градиентом. Как добиться градиентной обводки с прозрачным фоном? Заранее спасибо.

введите описание изображения здесь


person Ahmad Sabeh    schedule 18.12.2017    source источник
comment
поделитесь своим макетом   -  person Malik Motani    schedule 18.12.2017
comment
@Maddy Я редактировал вопрос с кодом макета   -  person Ahmad Sabeh    schedule 18.12.2017
comment
@AhmadSabeh Я сейчас в той же точке. К сожалению, ни один из ответов не работает ... какие-либо предложения о том, как вы ее решили?   -  person Tobi    schedule 05.12.2020
comment
просто используйте код, YourView расширяет RelativeLayout   -  person thecr0w    schedule 03.03.2021


Ответы (2)


после редактирования проверьте это

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
<!-- create gradient you want to use with the angle you want to use -->
    <shape android:shape="rectangle" >
        <gradient
            android:angle="0"
            android:centerColor="@android:color/holo_blue_bright"
            android:endColor="@android:color/holo_red_light"
            android:startColor="@android:color/holo_green_light" />

    </shape>
</item>
<!-- create the stroke for top, left, bottom and right with the dp you want -->
<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">
    <shape android:shape="rectangle" >
        <!-- fill the inside in the color you want (could also be a gradient again if you want to, just change solid to gradient and enter angle, start, maybe center, and end color) -->
        <solid android:color="#fff" />
    </shape>
</item>

</layer-list>
person Anuj Jindal    schedule 18.12.2017
comment
он просто добавляет обводку, но не прозрачную заднюю часть - person Rasel; 26.04.2018

Просто используйте 8-значное значение цвета, например # FFF8F8F6, где первые два символа - это альфа-значение. FF полностью непрозрачен, а 00 полностью прозрачен.

Проверь это

Как сделать прозрачный градиент?

Проверьте это также http://www.coderzheaven.com/2013/02/04/create-transparency-image-android/

person Sreejesh K Nair    schedule 18.12.2017