Android自定义颜色选择器:使用渐变绘制三角形

时间:2017-12-15 10:10:51

标签: android gradient color-picker

我是Android开发的新手,想要创建自己的颜色选择器。因此,我想创建一个三角形,其中角落中的颜色为红色,绿色,蓝色,其他颜色为中间的渐变。

我没有找到任何方式在Androi创建这样一个有3个原点的渐变,因此我想问你们,这个问题的最佳方法是什么:)

(我不仅仅是使用图像,因为带有渐变的亮度可以调整三角形的亮度,解决方案应该尽可能干净和高效)

感谢您的帮助!干杯

1 个答案:

答案 0 :(得分:0)

您可以在drawable文件夹中创建这样的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:height="100dp"
    android:width="120dp"
    android:viewportHeight="100"
    android:viewportWidth="100">
        <path android:pathData="m 50,0 l 50,100 -100,0 z" >
            <aapt:attr name="android:fillColor">
                <gradient
                    android:endX="0"
                    android:endY="100">
                        <item android:color="#F20600" android:offset="0.1111111" />
                        <item android:color="#FF7600" android:offset="0.22222222" />
                        <item android:color="#FFD500" android:offset="0.3333333" />
                        <item android:color="#8CFE00" android:offset="0.44444444" />
                        <item android:color="#00E86C" android:offset="0.5555555" />
                        <item android:color="#00E86C" android:offset="0.6666666" />
                        <item android:color="#00CCFF" android:offset="0.77777777" />
                        <item android:color="#013CE0" android:offset="0.8888888" />
                        <item android:color="#013CE0" android:offset="0.9999999" />
                </gradient>
            </aapt:attr>
        </path>
</vector>

您可以使用所需的颜色:)

然后设置ImageView src:

 <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:id="@+id/triangle"
        android:src="@drawable/triangle"
        />

结果:

enter image description here