2

我想增加选定的大小RowPresenter并在它周围放置一个白色边框BrowseFragment。我尝试跟随放置边框,但它的边缘适合我的卡片,因为我正在为卡片使用圆角。

private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
    @Override
    public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
                               RowPresenter.ViewHolder rowViewHolder, Row row) {
                ImageCardView cardView = (ImageCardView) itemViewHolder.view;
                GradientDrawable border = new GradientDrawable();
                border.setStroke(10, ContextCompat.getColor(getActivity(), R.color.white));
                cardView.getMainImageView().setImageDrawable(border);
  }
}

下面是我如何使我的卡角变圆的代码:

<dimen name="lb_rounded_rect_corner_radius">10dp</dimen>
  1. 如何增加所选卡片的大小超过默认缩放大小?
  2. 如何在我选择的卡片周围放置白色边框,使其平滑地覆盖所有边缘?
4

1 回答 1

4
  1. 如何增加所选卡片的大小超过默认缩放大小?

您可以通过在初始化ListRowPresenter. 您可以使用FocusHighlight#ZOOM_FACTOR_LARGE较大的焦点卡片初始化您的演示者。ListRowPresenter这个构造函数

  1. 如何在我选择的卡片周围放置白色边框,使其平滑地覆盖所有边缘?

您可以在提供自己的布局的地方提供自己的BaseCardView(或) 子类。ImageCardView当您拥有自己的布局时,您将没有任何限制因素。如果您查看leanback-showcase 示例应用程序中的这个文件夹,就会发现有很多自定义卡片的示例。

这涵盖了一个非常简单的示例

public class YourCardView extends BaseCardView {

    public YourCardView(Context context) {
        super(context, null, R.style.TextCardStyle);
        LayoutInflater.from(getContext()).inflate(R.layout.your_card_xml, this);
        setFocusable(true);
    }
}

您提供自己的 xml 文件而不是R.layout.your_card_xml. 在那里你可以添加边框和任何你想要的东西。

于 2016-11-07T16:04:08.180 回答