【问题标题】:RecyclerView.Adapter and ImageView.getWidth()RecyclerView.Adapter 和 ImageView.getWidth()
【发布时间】:2014-11-18 17:36:42
【问题描述】:

我有一个显示某些元素的回收视图,其中可能是图片,也可能不是图片。 为了显示该图片,出于性能原因,我使用this 方法。

我在 public void onViewAttachedToWindow(final ViewHolder holder) 中使用它,但我的 ImageView 的宽度和高度仍然为 0。

那么,我应该什么时候显示图像?

【问题讨论】:

  • 你需要 ImageView.getWidth() 做什么?
  • 缩放我想要显示的位图。在我发布的链接中,您可以阅读该方法
  • 但是如果你不设置任何位图来显示它会有多大?
  • 如果我没有位图,我不会调用该方法
  • 也许我错过了重点:首先你想创建一个位图,以便稍后在 iv.setImageBitmap() 中使用它,对吧?并且你需要 iv.getWidth()/iv.getHeight(),但由于你还没有调用 setImageBitmap,所以 iheight/width 将为零

标签: android imageview adapter android-recyclerview


【解决方案1】:

您可以通过执行mImageView.getViewTreeObserver().addOnPreDrawListener(...) 之类的操作在 ViewTreeObserver 上附加 PreDrawListener。

当该方法被调用时,您可以访问视图的宽度或高度。 请记住在侦听器被触发后将其删除:mImageView.getViewTreeObserver().removeOnPreDrawListener(this) 从您的侦听器中删除。

PS:抱歉,我现在无法访问 IDE,所以我可能打错了 ;)

【讨论】:

  • 像魅力一样工作。谢谢你:)
  • 有添加监听器的首选位置吗?我仍然得到 0 宽度和高度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 2015-04-27
相关资源
最近更新 更多