public class DataBindingAdapters {
// 根据View的高度和宽高比,设置高度
@BindingAdapter("widthHeightRatio")
public static void setWidthHeightRatio(final View view, final double ratio) {
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = view.getWidth();
if (width > 0) {
view.getLayoutParams().height = (int) (width * ratio);
view.invalidate();
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
}
}
使用
<ImageView
android:id="@+id/jdImg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_below="@+id/timeDate"
app:widthHeightRatio="@{0.5}"
android:onClick="@{()->viewModel.gojD()}"
app:url="@{viewModel.imgUrl}">
</ImageView>