В моем xml есть ImageView, который использует библиотеку привязки данных, и его высота равна «match_parent». Теперь у меня есть требование изменить его высоту во время выполнения, но когда я получаю его ширину, он всегда дает мне 0, какчтобы получить его фактический размер ширины?
У меня есть это ниже ImageView в моем xml:
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="centerCrop"
app:imageUrl="@{data.bannerImage}"
tools:src="@drawable/iop"
android:src="@drawable/iop"/>
, и я устанавливаю его высоту с отношением ширины, используяниже код Java
@Override
public void onResume() {
super.onResume();
mBinding.notifyChange();
mBinding.bannerImage.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewGroup.LayoutParams params = mBinding.bannerImage.getLayoutParams();
Log.e("tag","mBinding.bannerImage.getWidth()=="+mBinding.tvReviews.getWidth());
params.height= (int)(mBinding.tvReviews.getWidth()/1.75);
mBinding.bannerImage.setLayoutParams(params);
Log.e("tag,"params.height=="+params.height);
mBinding.bannerImage.getViewTreeObserver().removeOnGlobalLayoutListener(this);
mBinding.notifyPropertyChanged(com.webkul.mobikulmp.BR.bannerImage);
}
});
}
здесь mBinding = DataBindingUtil.setContentView (this, R.layout.activity_seller_profile) ;, // замените ваш xml здесь, но я всегда получаю 0, возвращенный дляmBinding.bannerImage.getWidth ().Я также пытался задать фиксированную ширину для ImageView, а также получить ее ширину для некоторого слушателя нажатия кнопки, но все напрасно.
Любая помощь приветствуется