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

Java Android-如何确定加载到ImageView的位图何时显示?,java,android,bitmap,imageview,android-glide,Java,Android,Bitmap,Imageview,Android Glide,我正在开发Android(6.0)应用程序,它需要在额外的屏幕上显示图像(通过HDMI端口连接)。它是通过使用Glide库和Presentation类完成的。Glide提供了“onResourceReady”事件,在将图像加载到imageview完成时应该触发该事件。可悲的是,我确信这并不意味着图像已经显示出来了 我需要知道这个附加屏幕上什么时候有图像,因为我需要精确地测量它显示的时间。我还试着检查我的imageview是否为“isDirty”,我还注意到,即使在我的this方法返回false(

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

我需要知道这个附加屏幕上什么时候有图像,因为我需要精确地测量它显示的时间。我还试着检查我的imageview是否为“isDirty”,我还注意到,即使在我的this方法返回false(这样图像视图就不再脏了)之后,在这(imageview不再脏)和屏幕上的实际图像绘制之间仍有一段时间

安卓系统是否提供了在图像真正显示在屏幕上后触发的机制?即使它需要一些黑客操作,挖掘NDK等?

你也应该使用一个工具来确定你的视图是何时绘制的。实施示例:

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

谢谢,我已经检查过了,效果很好。然而,我并没有删除侦听器,我必须计算它触发了多少次。在第二个onGlobalLayout事件之后,图像出现在附加屏幕上,因此它解决了我的问题。非常感谢!