Can't use setForeground method on ImageView
That is a documentation bug. setForeground()
existed on FrameLayout
from API Level 1; it is only on View
as of API Level 23.
Since the setForeground
method was added for the FrameLayout
in API Level 1, as a workaround you can wrap your view inside a FrameLayout
then use the setForeground
method to the layout, it will work, eg:
in your xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fl_item_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/niImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/imageView_description"
android:scaleType="fitCenter"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
Then in code, use:
holder.flItemContainer.setForeground(ContextCompat.getDrawable(a, R.drawable.play));