Android Tv imageCardView背景/额外内容

Android Tv imageCardView背景/额外内容,android,television,Android,Television,对于Android电视应用程序,我使用v17 leanback库和leanback主题 覆盖默认imageCardView背景色时出现问题 <!-- original styles defined in Leanback theme --> <style name="Widget.Leanback.BaseCardViewStyle" /> <style name="Widget.Leanback.ImageCardViewStyle" parent="Widg

对于Android电视应用程序,我使用v17 leanback库和leanback主题

覆盖默认imageCardView背景色时出现问题

<!-- original styles defined in Leanback theme -->

<style name="Widget.Leanback.BaseCardViewStyle" />

<style name="Widget.Leanback.ImageCardViewStyle" parent="Widget.Leanback.BaseCardViewStyle">
    <item name="cardType">infoUnder</item>
    <item name="infoVisibility">activated</item>
    <!-- i want to override this  -->
    <item name="android:background">@color/lb_basic_card_bg_color</item>
</style>

<!-- In my styles.xml I inherit leanback theme and override imageCardViewStyle -->
<style name="AppTheme" parent="Theme.Leanback">
    <item name="imageCardViewStyle">@style/myImageCardViewStyle</item>
</style>

<style name="myImageCardViewStyle">
    <item name="cardType">infoUnderWithExtra</item>
    <item name="infoVisibility">activated</item>
    <item name="extraVisibility">activated</item>
    <!-- set new color  -->
    <item name="android:background">#FADCA7</item>
</style>

infoUnder
激活
@颜色/磅\基本\卡\背景\颜色
@样式/myImageCardViewStyle
额外信息
激活
激活
#FADCA 7
问题是,背景色总是转换为Leanback主题中定义的“lb_basic_card_bg_color”,我不知道如何覆盖它


另一件事是,我没有找到设置imageCardView额外卡区域内容的方法。在API中,我只看到setTitleText和setContentText方法。

如果您使用演示程序(如在Leanback演示中),您可以尝试访问ImageCardView使用的ViewHolder,并使用
findViewById
找到相应的视图

试试这个:

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
    mContext = viewGroup.getContext();

    final ImageCardView imageCardView = new ImageCardView(mContext);
    imageCardView.setFocusable(true);
    imageCardView.setFocusableInTouchMode(true);
    imageCardView.findViewById(R.id.info_field).setBackgroundColor(mContext.getResources().getColor(YOUR_COLOR));

    return new ViewHolder(imageCardView);
}

至于额外的,它是一个ImageView,您可以使用
imageCardView.setBadgeImage(可在此绘制)设置它

使用Hexa代码#FF6600橙色在我的颜色中定义。xmlok,使用此代码@android:color/orange设置颜色不是问题,编辑问题。