ImageCardView
open class ImageCardView : BaseCardView
kotlin.Any | |||||
↳ | android.view.View | ||||
↳ | android.view.ViewGroup | ||||
↳ | android.widget.FrameLayout | ||||
↳ | androidx.leanback.widget.BaseCardView | ||||
↳ | androidx.leanback.widget.ImageCardView |
A subclass of BaseCardView
with an ImageView
as its main region. The ImageCardView
is highly customizable and can be used for various use-cases by adjusting the ImageViewCard's type to any combination of Title, Content, Badge or ImageOnly.
Styling
There are two different ways to style the ImageCardView.No matter what way you use, all your styles applied to an ImageCardView have to extend the style R.style#Widget_Leanback_ImageCardViewStyle.
Example:
<code><style name="CustomImageCardViewStyle" parent="Widget.Leanback.ImageCardViewStyle">
<item name="cardBackground">#F0F</item>
<item name="lbImageCardViewType">Title|Content</item>
</style>
<style name="CustomImageCardTheme" parent="Theme.Leanback">
<item name="imageCardViewStyle">@style/CustomImageCardViewStyle</item>
<item name="imageCardViewInfoAreaStyle">@style/ImageCardViewColoredInfoArea</item>
<item name="imageCardViewTitleStyle">@style/ImageCardViewColoredTitle</item>
</style></code>
The first possibility is to set custom Styles in the Leanback Theme's attributes imageCardViewStyle
, imageCardViewTitleStyle
etc. The styles set here, is the default style for all ImageCardViews.
The second possibility allows you to style a particular ImageCardView. This is useful if you want to create multiple types of cards. E.g. you might want to display a card with only a title and another one with title and content. Thus you need to define two different ImageCardViewStyles
and two different themes and apply them to the ImageCardViews. You can do this by using a the ImageCardView(Context)
constructor and passing a ContextThemeWrapper with the custom ImageCardView theme id.
Example (using constructor):
<code>new ImageCardView(new ContextThemeWrapper(context, R.style.CustomImageCardTheme));
</code>
You can style all ImageCardView's components such as the title, content, badge, infoArea and the image itself by extending the corresponding style and overriding the specific attribute in your custom ImageCardView theme.
Components
The ImageCardView contains three components which can be combined in any combination:- Title: The card's title
- Content: A short description
- Badge: An icon which can be displayed on the right or left side of the card.
lbImageCardViewType
attribute of your custom ImageCardViewStyle
. You can combine the following values: Title, Content, IconOnRight, IconOnLeft, ImageOnly
.
Examples:
<code><style name="CustomImageCardViewStyle" parent="Widget.Leanback.ImageCardViewStyle">
...
<item name="lbImageCardViewType">Title|Content|IconOnLeft</item>
...
</style></code>
<code><style name="CustomImageCardViewStyle" parent="Widget.Leanback.ImageCardViewStyle">
...
<item name="lbImageCardViewType">ImageOnly</item>
...
</style></code>
androidx.leanback.R.attr#imageCardViewStyle androidx.leanback.R.attr#lbImageCardViewType androidx.leanback.R.attr#imageCardViewTitleStyle androidx.leanback.R.attr#imageCardViewContentStyle androidx.leanback.R.attr#imageCardViewBadgeStyle androidx.leanback.R.attr#imageCardViewImageStyle androidx.leanback.R.attr#imageCardViewInfoAreaStyle
Summary
Constants |
|
---|---|
static Int | |
static Int | |
static Int | |
static Int | |
static Int |
Inherited constants |
|
---|---|
Public constructors |
|
---|---|
Create an ImageCardView using a given theme for customization. |
|
<init>(context: Context!, attrs: AttributeSet!, defStyleAttr: Int) |
|
<init>(context: Context!, attrs: AttributeSet!) |
Public methods |
|
---|---|
open Drawable! |
Returns the badge image drawable. |
open CharSequence! |
Returns the content text. |
open Drawable! |
Returns the info area background drawable. |
open Drawable! |
Returns the ImageView drawable. |
ImageView! |
Returns the main image view. |
open CharSequence! |
Returns the title text. |
open Boolean | |
open Unit |
setBadgeImage(drawable: Drawable!) Sets the badge image drawable. |
open Unit |
setContentText(text: CharSequence!) Sets the content text. |
open Unit |
setInfoAreaBackground(drawable: Drawable!) Sets the info area background drawable. |
open Unit |
setInfoAreaBackgroundColor(color: Int) Sets the info area background color. |
open Unit |
setMainImage(drawable: Drawable!) Sets the image drawable with fade-in animation. |
open Unit |
setMainImage(drawable: Drawable!, fade: Boolean) Sets the image drawable with optional fade-in animation. |
open Unit |
setMainImageAdjustViewBounds(adjustViewBounds: Boolean) Enables or disables adjustment of view bounds on the main image. |
open Unit |
setMainImageDimensions(width: Int, height: Int) Sets the layout dimensions of the ImageView. |
open Unit |
setMainImageScaleType(scaleType: ScaleType!) Sets the ScaleType of the main image. |
open Unit |
setTitleText(text: CharSequence!) Sets the title text. |
Protected methods |
|
---|---|
open Unit | |
open Unit |
Inherited functions |
|
---|---|
Constants
Public constructors
<init>
ImageCardView(context: Context!, themeResId: Int)
Deprecated: Calling this constructor inefficiently creates one ContextThemeWrapper per card, you should share it in card Presenter: wrapper = new ContextThemeWrapper(context, themResId); return new ImageCardView(wrapper);
Create an ImageCardView using a given theme for customization.
Parameters | |
---|---|
context |
Context!: The Context the view is running in, through which it can access the current theme, resources, etc. |
themeResId |
Context!: The resourceId of the theme you want to apply to the ImageCardView. The theme includes attributes "imageCardViewStyle", "imageCardViewTitleStyle", "imageCardViewContentStyle" etc. to customize individual part of ImageCardView. |
<init>
ImageCardView(context: Context!, attrs: AttributeSet!, defStyleAttr: Int)
Public methods
getInfoAreaBackground
open fun getInfoAreaBackground(): Drawable!
Returns the info area background drawable.
hasOverlappingRendering
open fun hasOverlappingRendering(): Boolean
setInfoAreaBackground
open fun setInfoAreaBackground(drawable: Drawable!): Unit
Sets the info area background drawable.
setInfoAreaBackgroundColor
open fun setInfoAreaBackgroundColor(color: Int): Unit
Sets the info area background color.
setMainImage
open fun setMainImage(drawable: Drawable!): Unit
Sets the image drawable with fade-in animation.
setMainImage
open fun setMainImage(drawable: Drawable!, fade: Boolean): Unit
Sets the image drawable with optional fade-in animation.
setMainImageAdjustViewBounds
open fun setMainImageAdjustViewBounds(adjustViewBounds: Boolean): Unit
Enables or disables adjustment of view bounds on the main image.
setMainImageDimensions
open fun setMainImageDimensions(width: Int, height: Int): Unit
Sets the layout dimensions of the ImageView.
setMainImageScaleType
open fun setMainImageScaleType(scaleType: ScaleType!): Unit
Sets the ScaleType of the main image.
Protected methods
onAttachedToWindow
protected open fun onAttachedToWindow(): Unit
onDetachedFromWindow
protected open fun onDetachedFromWindow(): Unit