繁体   English   中英

Android-如何确定何时显示加载到ImageView的位图?

[英]Android - how to determine when bitmap loaded to ImageView gets displayed?

我正在使用Android(6.0)应用,该应用需要在其他屏幕(通过HDMI端口连接)上显示图像。 这是通过使用Glide库和Presentation类完成的。 Glide提供了“ onResourceReady”事件,该事件在将图像加载到imageview时完成。 可悲的是,我确定这并不意味着图像已经显示!

我需要知道此附加屏幕上何时有图像,因为我需要精确测量显示的时间。 我还尝试检查我的imageview是否为“ isDirty”,并且我还注意到,即使在我此方法返回false(因此图像视图不再脏)之后,在该时间(imageview不再变脏)和实际绘图之间仍有一段时间屏幕上的图像。

Android是否提供了在图像真正显示在屏幕上后会触发的任何机制? 即使它需要进行一些黑客攻击,深入研究NDK等?

您应该使用GlobalLayoutListener来确定何时绘制视图。 示例实现:

yourImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            yourImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            //Put your measurements here.
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM