Android ImageView 将 srcCompact 绑定到布尔变量
Android ImageView bind srcCompact to a boolean Variable
我刚刚发现如何将变量绑定到xml文件,第一次很难,但它确实加快了工作速度。
如何将变量绑定到 imageView,以便 如果变量(布尔值)从 true 变为 false,ImageView SrcCompact 也会发生变化?
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
app:srcCompat="@drawable/ic_bluetooth_indigo_a400_48dp"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_margin="20dp" />
这是我的 Imageview 代码,带有蓝色的蓝牙徽标。
我想将它绑定到“BluetoothEnable”布尔值,以防万一“BluetoothEnable”变为“FALSE" 我希望 imageView 显示 SrcCompact 并带有红色 蓝牙徽标 。
如果有人遇到这种情况,我想分享一些解决方案。
当我尝试使用三元表达式时,它对我不起作用:
<ImageView
...
app:srcCompat="@{isBluetoothEnabled? @drawable/ic_bluetooth_green : @drawable/ic_bluetooth_red}"
... />
所以,我尝试了绑定适配器方法。
我在这里创建了一个绑定适配器,它将接收 isBluetoothEnabled
的布尔值,然后根据它选择合适的可绘制图像:
public class BindingAdapters {
@BindingAdapter("app:bluetoothBasedSrc")
public static void setSendState(ImageView v, boolean isBluetoothEnabled) {
int drawableRes = isBluetoothEnabled ? R.drawable.ic_bluetooth_green : R.drawable.ic_bluetooth_red;
v.setImageResource(drawableRes);
}
}
下面是我们如何在 ImageView
:
中使用绑定适配器
<ImageView
...
app:bluetoothBasedSrc=@{isBluetoothEnabled}
tools:srcCompat="@drawable/ic_bluetooth_green"
... />
希望解决方案对这个案例有所帮助。
我刚刚发现如何将变量绑定到xml文件,第一次很难,但它确实加快了工作速度。
如何将变量绑定到 imageView,以便 如果变量(布尔值)从 true 变为 false,ImageView SrcCompact 也会发生变化?
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
app:srcCompat="@drawable/ic_bluetooth_indigo_a400_48dp"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_margin="20dp" />
这是我的 Imageview 代码,带有蓝色的蓝牙徽标。 我想将它绑定到“BluetoothEnable”布尔值,以防万一“BluetoothEnable”变为“FALSE" 我希望 imageView 显示 SrcCompact 并带有红色 蓝牙徽标 。
如果有人遇到这种情况,我想分享一些解决方案。
当我尝试使用三元表达式时,它对我不起作用:
<ImageView
...
app:srcCompat="@{isBluetoothEnabled? @drawable/ic_bluetooth_green : @drawable/ic_bluetooth_red}"
... />
所以,我尝试了绑定适配器方法。
我在这里创建了一个绑定适配器,它将接收 isBluetoothEnabled
的布尔值,然后根据它选择合适的可绘制图像:
public class BindingAdapters {
@BindingAdapter("app:bluetoothBasedSrc")
public static void setSendState(ImageView v, boolean isBluetoothEnabled) {
int drawableRes = isBluetoothEnabled ? R.drawable.ic_bluetooth_green : R.drawable.ic_bluetooth_red;
v.setImageResource(drawableRes);
}
}
下面是我们如何在 ImageView
:
<ImageView
...
app:bluetoothBasedSrc=@{isBluetoothEnabled}
tools:srcCompat="@drawable/ic_bluetooth_green"
... />
希望解决方案对这个案例有所帮助。