在中风android上设置渐变

Vik*_*tor 5 java android gradient shape

我有一个圆形的drawable,我设置了一个8dp的白色笔画,像这样:

    circleImage = (ImageView) rootView.findViewById(R.id.image);
    circleImage.setOnClickListener(clickListener);
    drawable = (GradientDrawable) circleImage.getBackground();
    drawable.setStroke(8, getResources().getColor(R.color.colorWhite));
Run Code Online (Sandbox Code Playgroud)

XML for circleImage看起来像这样:

 <ImageView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_centerInParent="true"
            android:id="@+id/image"
            android:background="@drawable/roundcorner"
            android:clickable="true"/>
Run Code Online (Sandbox Code Playgroud)

我现在要做的是改变drawable.setStroke包含这样的渐变颜色

1

我想最简单的方法是在可绘制的XML中编写一些东西,但我不知道如何实现这一点.

roundcorner.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"  android:shape="rectangle" >
        <corners
            android:topLeftRadius="100dp"
            android:topRightRadius="100dp"
            android:bottomLeftRadius="100dp"
            android:bottomRightRadius="100dp"
            />
        <padding
            android:left="2dp"
            android:top="2dp"
            android:right="2dp"
            android:bottom="2dp"
            />
        <size
            android:width="100dp"
            android:height="100dp"
            />
    </shape>
Run Code Online (Sandbox Code Playgroud)

Fr0*_*99y 20

你应该做这样的事情.使用layer-list2个形状.第一个是梯度行程,第二个是实心.

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="oval" >
            <gradient
                android:angle="360"
                android:startColor="#543456"
                android:endColor="#ff00b5"
                android:type="linear" />
            <size android:width="24dp"
                  android:height="24dp"/>
        </shape>
    </item>

    <item
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="2dp">
        <shape android:shape="oval" >
            <solid android:color="#fff" />
        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

这段代码看起来像这样 在此输入图像描述


pck*_*ill 6

如果您需要内部颜色透明,那么您可以使用环形:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:thickness="2dp"
    android:useLevel="false">
    <gradient
        android:startColor="@color/sea_green"
        android:endColor="@color/black"
        android:angle="270" />
</shape>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 如何用矩形做出同样的效果? (3认同)