gpt4 book ai didi

android - 如何为 Android TV 自定义选定的 RowPresenter

转载 作者:行者123 更新时间:2023-11-29 19:29:24 27 4
gpt4 key购买 nike

我想增加所选 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. 如何在我选择的卡片周围放置白色边框,使其平滑地覆盖所有边缘?

最佳答案

  1. How can I increase size of selected card more than default zooming size?

您可以通过在初始化 ListRowPresenter 时传入更大的 FocusHighlight 缩放系数来实现。您可以使用 FocusHighlight#ZOOM_FACTOR_LARGE 为较大的重点卡片初始化演示者。 ListRowPresenterthis constructor .

  1. How can I put white border around my selected card, so that it covers all edges smoothly?

您可以提供自己的 BaseCardView(或 ImageCardView)子类,您可以在其中提供自己的布局。当您拥有自己的布局时,您将没有任何限制因素。如果你看this folder在 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。在那里你可以添加边框和任何你想要的东西。

关于android - 如何为 Android TV 自定义选定的 RowPresenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40427529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com