Я ищу способ, как добавить два цвета внутри границы точно так же, как этот человек сделал с этим изображением CSS двухцветная рамка, но мне больше интересно узнать, как этого добиться в Android.
Цель состоит в том, чтобы иметь что-то похожее на этот https://github.com/lorensr/segmented-control для моего приложения, но с двумя разными цветами внутри границы, которые переключаются между собой, когда кнопка находится в фокусе.
Хорошего дня :)
Вы можете использовать собственный фоновый файл xml, например это, и использовать собственный фоновый файл.
Вы можете использовать layer-list и один слой с градиентным фоном и второй макет со сплошным цветом со всеми боковыми отступами, как показано ниже.
<?xml version = "1.0" encoding = "utf-8"?>
<layer-list xmlns:android = "http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape = "rectangle">
<gradient
android:angle = "180"
android:endColor = "#00f"
android:startColor = "#f00" />
</shape>
</item>
<item
android:bottom = "10dp"
android:left = "10dp"
android:right = "10dp"
android:top = "10dp">
<shape
android:shape = "rectangle">
<solid android:color = "#0f0" />
</shape>
</item>
</layer-list>
В этом примере я дал 10dp (в
android:bottom = "10dp"
android:left = "10dp"
android:right = "10dp"
android:top = "10dp"
), чтобы увидеть более четкое, вы можете изменить значение по своему усмотрению.
<item>
<shape android:shape = "rectangle">
<corners android:radius = "@dimen/_20sdp" />
<gradient
android:angle = "180"
android:endColor = "@color/yellow_color"
android:startColor = "@color/color_red" />
</shape>
</item>
<item
android:bottom = "1dp"
android:left = "1dp"
android:right = "1dp"
android:top = "1dp">
<shape android:shape = "rectangle">
<corners android:radius = "@dimen/_20sdp" />
<solid android:color = "@color/white_color" />
</shape>
</item>
</layer-list>```
**Two color border with round corner**