Измерьте высоту ImageView - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно измерить высоту строки внутри просмотра переработчика. Я прочитал много решений внутри SO, но они не работают для меня. Я загружаю изображение в imageView через библиотеку Glide. Ширина imageView установлена ​​на MATCH_PARENT, а высота установлена ​​на WRAP_CONTENT. После загрузки ресурса из сети мне нужно знать точную высоту. Я пробовал следующее:

@Override
public void onBindViewHolder(@NonNull PostsAdapter.ViewHolder viewHolder, int position) {

Glide.with(context)
        .load(post.getImageUrl())
        .addListener(new RequestListener<Drawable>() {

            [...]

            @Override
            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {

                viewHolder.imageViewPost.measure(View.MeasureSpec.makeMeasureSpec(recyclerView.getWidth(), View.MeasureSpec.EXACTLY),
                        View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));

                Log.d(TAG, "Height: " + viewHolder.imageViewPost.getMeasuredHeight());

                return false;
            }
        })
        .into(viewHolder.imageViewPost);
}

Высота, напечатанная в консоли, всегда равна 0 ... Есть идеи? Большое спасибо заранее.

Я тоже это пробовал:

viewHolder.imageViewPost.postDelayed(() -> {
    Log.d(TAG, "Height: " + viewHolder.imageViewPost.getMeasuredHeight());
}, 2000);

Это дает некоторые непротиворечивые значения, только с задержкой 2000 года, но, на мой взгляд, это довольно странно ... любая альтернатива?

...