Итак, у меня есть приложение, которое должно поддерживать android 6. У нас есть представление изображения
<ImageView
android:id="@+id/volumecontrol_leftbatterylevel"
android:layout_width="32dp"
android:layout_height="32dp"
custom:srcFromBatteryPercent="@{hearingDeviceViewModel.leftBatteryPercent}"
tools:src="@drawable/battery_full"
android:visibility="@{hearingDeviceViewModel.hasLeftBatteryStateOfCharge ? View.VISIBLE : View.GONE}"
custom:layout_constraintStart_toStartOf="parent"
custom:layout_constraintTop_toTopOf="parent"/>
с кодом привязки адаптера
@BindingAdapter("srcFromBatteryPercent")
public static void setSrcFromBatteryPercent(final ImageView view,
final int batteryPercent) {
Drawable drawable;
if (batteryPercent > 90) {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_full);
}
else if (batteryPercent >= 80) {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_80);
}
else if (batteryPercent >= 60) {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_60);
}
else if (batteryPercent >= 40) {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_40);
}
else if (batteryPercent >= 20) {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_20);
}
else {
drawable = ContextCompat.getDrawable(view.getContext(), R.drawable.battery_alert);
}
//view.setImageDrawable(drawable);
view.setBackground(drawable);
}
Это прекрасно работает на android 7 и выше. То, что видели на Android 6 (Nexus 5 и Galaxy s5, так что это не просто одно устройство), - это то, что изображения там нет. Когда я окрашиваю фон изображения, он показывает цвет, и там есть место. Ресурс drawable - это ресурс xml, так что это не проблема папки nodpi.
Любые идеи