Не могу использовать метод setForeground в ImageView
Я хочу использовать метод setForeground, чтобы отобразить значок воспроизведения в центре моего ImageView, чтобы указать пользователю, что видео будет воспроизводиться, если они нажмут на него.
В настоящее время у меня есть эта ошибка, которую я не могу решить:
Хотя в документации сказано, что метод должен быть доступен начиная с API 1:
Я нацеливаюсь на API 23 и собираю его с помощью инструментов сборки версии 23.0.1. Я нацеливаюсь на мин API 16.
2 ответа
Это ошибка документации. setForeground()
существовал на FrameLayout
от уровня API 1; это только на View
на уровне API 23.
Так как setForeground
метод был добавлен для FrameLayout
на уровне API 1, в качестве обходного пути вы можете обернуть ваше представление внутри FrameLayout
затем используйте setForeground
Метод с макетом, он будет работать, например:
в вашем 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>
Затем в коде используйте:
holder.flItemContainer.setForeground(ContextCompat.getDrawable(a, R.drawable.play));
Вы можете изменить
minSdkVersion 16
с
minSdkVersion 23
или же import android.support.annotation.RequiresApi;
к вашему классу и это утверждение
@RequiresApi(api = Build.VERSION_CODES.M)
к деятельности, которую вы использовали setForground
метод в этом.
Обратите внимание, что M
в @RequiresApi(api = Build.VERSION_CODES.M)
выступает за API 23
и вы можете использовать каждый из пунктов ниже, каждый из которых обозначает определенный API вместо M
БАЗА 1
BASE_1_1 2
Кекс 3
ПОНЯТЬ 4
Эклер 5
ECLAIR_0_1 6
ECLAIR_MR1 7
ФРОЙО 8
Имбирь 9
GINGERBREAD_MR1 10
МЕДОВАЯ КОМБИНАЦИЯ 11
HONEYCOMB_MR1 12
HONEYCOMB_MR2 13 ICE_CREAM_SANDWICH 14
ICE_CREAM_SANDWICH_MR1 15
JELLY_BEAN 16
JELLY_BEAN_MR1 17
JELLY_BEAN_MR2 18
KITKAT 19
KITKAT_WATCH 20
LOLLIPOP 21 LOLLIPOP_MR1 22
М 23
N 24
N_MR1 25
O 26
CUR_DEVELOPMENT 10000