Android ImageView drawable未在棉花糖上显示
所以我有一个应用程序需要支持android 6。我们有一个图像视图Android ImageView drawable未在棉花糖上显示,android,imageview,Android,Imageview,所以我有一个应用程序需要支持android 6。我们有一个图像视图 <ImageView android:id="@+id/volumecontrol_leftbatterylevel" android:layout_width="32dp" android:layout_height="32dp" custom:srcFromBatteryPercent="@{hearingD
<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"/>
这在android 7及以上版本上运行得非常好。我们在安卓6(Nexus5和GalaxyS5,所以它不仅仅是一台设备)上看到的是图像不存在。当我给图像的背景上色时,它会显示颜色,并且有空间。可绘制资源是一个xml资源,因此它不是一个nodpi文件夹问题
任何想法您是否使用androidx.appcompat:appcompat支持库和AppCompatActivity?我们使用
实现“androidx.appcompat:appcompat:1.1.0”
并且是的,我们的活动扩展了AppCompatActivity您的活动必须扩展AppCompatActivity
,以便appcompat正常工作。如果一切都做对了,那么AppCompatImageView将被放大,而不是ImageView,它可以使用setImageDrawable方法正确处理向量抱歉编辑了我的评论,因为我第一次误读了你的评论。是的,我们扩展了AppCompativity然后,如果从自定义:srcFromBatteryPercent
中删除自定义:
不起作用-你的向量有问题,android框架会经常改变它使用向量的方式。
@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);
}