Нарисуйте пользовательскую границу, используя селектор с анимацией - PullRequest
0 голосов
/ 06 декабря 2018

Я использую обзор переработчика, который содержит n горизонтальных элементов внутри.У каждого есть изображение и текст.Вы перемещаетесь по меню, используя d-pad (физические клавиши со стрелками) и , а не сенсорный экран.

Я бы хотел добиться следующего эффекта с помощью селектора Android xml и могуt выяснить, как:

  • В unselected_state я бы хотел, чтобы элементы оставались как есть.
  • В активном, или selected_state, я бы хотелзеленое перекрестие (не знаю, как его назвать), чтобы оно появилось с помощью затухания в анимации
  • Затухание, когда элемент возвращается к unselected_state.

Я пытался использоватьпатч из девяти, но он дал странные результаты, и я не уверен, что это правильный способ сделать это.Мой текущий селектор использует простые цвета:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Checked tab -->
<item android:state_checked="true">
    <shape>
        <solid android:color="@color/red" />
    </shape>
</item>
<!-- Active tab -->
<item android:drawable="@color/red" android:state_focused="false" android:state_pressed="false" android:state_selected="true" />
<!-- Inactive tab -->
<item android:state_focused="false" android:state_pressed="false" android:state_selected="false">
    <color android:color="@color/black_faded" />
</item>
<!-- Pressed tab -->
<item android:state_pressed="true">
    <color android:color="@color/black_faded" />
</item>
<!-- Selected tab (using d-pad) -->
<item android:state_focused="true" android:state_pressed="false" android:state_selected="true">
    <color android:color="@color/red" />
</item>
</selector>

enter image description here

...