Подтвердить что ты не робот

Изменение цвета материала

Можно ли изменить цвет тени, созданный свойством xml elevation? Я хочу, чтобы тень динамически менялась с помощью кода.

4b9b3361

Ответ 1

Я знаю, что этот вопрос очень старый и, возможно, автору больше не нужен ответ. Я просто оставлю это здесь, чтобы другие могли его найти.

Система рельефа Lollipop не поддерживает цветные тени.

Но, если вам нужны цветные тени, их можно получить с помощью Carbon. Это своего рода библиотека поддержки для Material Design, и в самой последней версии есть возможность изменить цвет тени. На Behance было множество отличных дизайнов с цветными тенями, и я подумал, что было бы неплохо иметь их, несмотря на отсутствие такой функции в Android. Важно отметить, что цветные тени эмулируются на всех версиях Android, в том числе и на 5. 0+.

https://github.com/ZieIony/Carbon

Следующее изображение и код можно найти в образцах углерода.

enter image description here

Код:

<carbon.widget.LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <carbon.widget.Button
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:layout_margin="@dimen/carbon_padding"
        android:background="#ffffff"
        app:carbon_cornerRadius="2dp"
        app:carbon_elevation="8dp"
        app:carbon_elevationShadowColor="@color/carbon_red_700"/>

</carbon.widget.LinearLayout>

"CardView":

<carbon.widget.LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <carbon.widget.LinearLayout
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:layout_margin="@dimen/carbon_margin"
        android:background="#ffffff"
        app:carbon_cornerRadius="2dp"
        app:carbon_elevation="8dp"
        app:carbon_elevationShadowColor="@color/carbon_red_700">

        <carbon.widget.ImageView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:src="@drawable/test_image"/>

        <carbon.widget.TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="test text"/>
    </carbon.widget.LinearLayout>

</carbon.widget.LinearLayout>