Отключите затемнение карты в VerticalGridFragment в исходном примере

#android #android-fragments #android-tv #leanback

#Android #android-фрагменты #android-tv #откат

Вопрос:

Я использую VerticalGridFragment из примера git для простого отображения информации и не хочу взаимодействия с пользователем. Я успешно отключил фокусировку пользователя в CardPresenter.cs, но я также хотел бы изменить все карты, чтобы они не были тусклыми.

Вот скриншот класса и затемнения, которые я хотел бы отключить. http://corochann.com/verticalgridfragment-android-tv-application-hands-on-tutorial-19-718.html

Я попытался изменить альфа-значение внутри класса CardPresenter, но, похоже, это ничего не дает. Любая помощь будет оценена!

CardPresenter.cs

 @Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
    mDefaultBackgroundColor =
        ContextCompat.getColor(parent.getContext(), R.color.default_background);
    mSelectedBackgroundColor =
            ContextCompat.getColor(parent.getContext(), R.color.selected_background);
    mDefaultCardImage = parent.getResources().getDrawable(R.drawable.movie, null);

    ImageCardView cardView = new ImageCardView(parent.getContext()) {
        @Override
        public void setSelected(boolean selected) {
            updateCardBackgroundColor(this, selected);
            super.setSelected(selected);
        }
    }; 

    cardView.setAlpha(1.0f);
    cardView.setFocusable(false);
    cardView.setFocusableInTouchMode(false);
    updateCardBackgroundColor(cardView, false);

    return new ViewHolder(cardView);
}
 

Ответ №1:

создайте свой презентатор следующим образом:

 VerticalGridPresenter gridPresenter = new VerticalGridPresenter(FocusHighlight.ZOOM_FACTOR_LARGE,false);
 

значение «false» предназначено для включения / выключения затемнения

Ответ №2:

Возможно, вы захотите начать использовать эти вспомогательные классы, которые в основном используются для применения уровня яркости или цвета к вашему виду.

  • ColorOverlayDimmer

    Вспомогательный класс для назначения тусклого цвета для рисования. Он содержит альфа-значение для текущего активного уровня.

  • ColorFilterDimmer

    Вспомогательный класс для применения уровня затемнения к представлению. ColorFilterDimmer использует ColorFilter в объекте рисования, чтобы затемнить изображение в соответствии с текущим активным уровнем.

Примеры кодов реализации на Java можно найти здесь. Надеюсь, это поможет!