Стандартная кнопка Android с другим цветом

Самый простой для развертывания - это, вероятно, драйвер типа 4 или тонкий драйвер. Я говорю, что это самый простой из-за того, что он не полагается на какие-либо собственные библиотеки Oracle или клиентскую установку. Он легко доступен из Oracle .

723
задан Ümañg ßürmån 30 October 2018 в 11:13
поделиться

3 ответа

Я обнаружил что все это можно довольно легко сделать в одном файле. Поместите что-то вроде следующего кода в файл с именем custom_button.xml , а затем установите background = "@ drawable / custom_button" в представлении кнопок:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="@color/yellow1"
                android:endColor="@color/yellow2"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey05" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:endColor="@color/orange4"
                android:startColor="@color/orange5"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey05" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>        
        <shape>
            <gradient
                android:endColor="@color/blue2"
                android:startColor="@color/blue25"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey05" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
719
ответ дан 22 November 2019 в 21:31
поделиться

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

Пример:

button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFAA0000));

попробуйте это, чтобы получить желаемый цвет.

148
ответ дан 22 November 2019 в 21:31
поделиться

Следуя ответу Томаша, вы также можете программно установить оттенок всей кнопки, используя режим умножения PorterDuff. Это изменит цвет кнопки, а не только оттенок.

Если вы начнете со стандартной кнопки с серым оттенком:

button.getBackground().setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

даст вам кнопку с красным затенением,

button.getBackground().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);

даст вам кнопку с зеленым затенением и т. Д., Где первое значение - цвет в шестнадцатеричном формате.

Он работает путем умножения текущего значения цвета кнопки на значение вашего цвета. Я уверен, что с этими режимами можно сделать гораздо больше.

306
ответ дан 22 November 2019 в 21:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: