Преобразование градиента css в градиент android (xml)

Я хотел бы преобразовать градиент css в файл градиента android xml (shape)

например,

background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);

в

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="0"
        android:endColor="#b12a5b"
        android:startColor="#ff867a"
        android:type="linear" />
</shape>

Я не знаю много о css. Я знаю только андроид и есть только три параметра для цветов android:endColor, android:startColor, android:centerColorКак я могу определить это% и различные цвета представлены в CSS

есть ли онлайн-инструмент, откуда я могу сгенерировать xml-файл, предоставив вход css.

android,css,gradient,

2

Ответов: 2


0 принят
+100

Я бы рекомендовал посмотреть на этот связанный вопрос: с помощью gradientDrawable с более чем тремя цветами

Используя объект LinearGradient , вы можете определить градиент с использованием нескольких цветов и процентных остановок.

Например (заимствованный из вопроса, который я связал):

LinearGradient linearGradient = new LinearGradient(0, 0, width, height,
        new int[] { 
            0xFF1e5799, 
            0xFF207cca, 
            0xFF2989d8, 
            0xFF207cca }, //substitute the correct colors for these
        new float[] {
            0, 0.40f, 0.60f, 1 },
        Shader.TileMode.REPEAT);

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


0

Я использовал это в прошлом, чтобы нарисовать градиент в backgroung


        View    layout  =   findViewById(R.id.mainLayout);

        GradientDrawable    gradientDrawable    =   new GradientDrawable(
                GradientDrawable.Orientation.TOP_BOTTOM,
                new int[]   {0xff45c0cc,0xff0054a6}
        );
        gradientDrawable.setCornerRadius(0f);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            layout.setBackground(gradientDrawable);
        }

то, что я понимаю из данного css, это # ??f99185-52% означает прозрачность в 52%, а в моем примере кода int [] имеет шестнадцатеричный код, что вы можете сделать, это использовать 6-значный GRBcode и добавить с эквивалентом непрозрачности 52% отсюда к нему и добавить его с данным RGBcode

например, # f99185 52% станет # f9918585, поскольку 52% в шестнадцатеричном состоянии - 85

андроид, CSS, градиент,
Похожие вопросы
Яндекс.Метрика