ImageView Drawable не отображается на MarshMallow - PullRequest
0 голосов
/ 20 февраля 2020

Итак, у меня есть приложение, которое должно поддерживать 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.

Любые идеи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...