在leanback示例中关闭VerticalGridFragment中的卡片变暗

时间:2016-10-17 00:23:25

标签: android android-fragments android-tv leanback

我使用git示例中的VerticalGridFragment来显示信息,不希望用户交互。我成功地关闭了用户专注于CardPresenter.cs,但我也想更换所有卡片,以便它们不会变暗。

这是我要关闭的课程和调光的截图。 http://corochann.com/verticalgridfragment-android-tv-application-hands-on-tutorial-19-718.html

我已经尝试更改CardPresenter类中的alpha,但这似乎没有做任何事情。任何帮助将不胜感激!

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);
}

2 个答案:

答案 0 :(得分:1)

您可能希望开始使用这些辅助类,这些辅助类主要用于为视图应用昏暗级别或颜色。

  • ColorOverlayDimmer

    Helper类,用于为Paint指定暗色。它保存当前活动级别的alpha值。

  • ColorFilterDimmer

    用于将昏暗级别应用于视图的助手类。 ColorFilterDimmer使用Paint对象中的ColorFilter根据当前活动级别调暗视图。

可以找到Java中的示例实现代码here。希望它有所帮助!

答案 1 :(得分:1)

像这样创建你的演示者:

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

“false”用于启用/禁用调光