Вид не меняется на правильный цветовой оттенок с настраиваемым рисунком - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть вид, подобный этому (я опустил остальные виджеты):

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="236dp"
    android:background="@drawable/mask_round_corner_16r">

    <View
        android:id="@+id/baseForeground"
        android:layout_width="0dp"
        android:layout_height="172dp"
        android:background="@drawable/mask_round_corner_16r"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />    

    <OtherStuff>
        ....
    </OtherStuff>
</android.support.constraint.ConstraintLayout>

Имеющий в качестве фона форму, делающую ее округленными границами:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/white" />
    <corners android:radius="16dp" />
</shape>

Проблема в том, что я хочу изменить цвет Контейнера и Представления по коду, не меняя чертеж, используемый для придания им формы.

Итак, что я сделал:

var colorTop = ContextCompat.getColor(context, R.color.dark_organge) // dark color
baseForeground.backgroundTintList = ColorStateList.valueOf(color)

var colorBot = ContextCompat.getColor(context, R.color.light_organge)// light color
container.backgroundTintList = ColorStateList.valueOf(color)

Но взгляды правильно устанавливают цвет.В специальном вид на передний план. (@+id/baseForeground) и кажется более светлым, чем обычно

Может быть .. Я что-то упустил?Или что-то не так?

Также после изменения цвета сделал invalidate(), но все равно не работает К вашему сведению: все эти представления используются в обзоре переработчика.

РЕДАКТИРОВАТЬ

Чтобы было понятнее.То, чего я хочу добиться, это установить цвет для ConstraintLayout и цвет для View.Проблема в том, что у них есть возможность рисования для установки формы, и когда я пытаюсь установить оттенок вида, меняется только вид, но не оба

То, что я получил прямо сейчас (просто, сосредоточиться нацвет видов, другие виджеты не проблема ^^) enter image description here

Что должно быть enter image description here

...