Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 时间图像在屏幕上可见_Android_Listview_Imageview_Android Arrayadapter - Fatal编程技术网

Android 时间图像在屏幕上可见

Android 时间图像在屏幕上可见,android,listview,imageview,android-arrayadapter,Android,Listview,Imageview,Android Arrayadapter,在我的活动中,我有一个带有扩展ArrayAdapter的自定义适配器的listview。 现在我的listview就像Instagram或Facebook的主页。有很多图片是由用户发布的。每个listview项目的高度约为屏幕的高度。我想做的是计算用户观看图像的毫秒数。这意味着图像在屏幕上的显示量 有人能帮忙吗?谢谢。您可以使用Timer类来计算时间 从头开始计时 使用OnScrollListener在每个滚动中使用getFirstVisiblePosition()检查当前可见的项目 如果位置

在我的活动中,我有一个带有扩展ArrayAdapter的自定义适配器的listview。 现在我的listview就像Instagram或Facebook的主页。有很多图片是由用户发布的。每个listview项目的高度约为屏幕的高度。我想做的是计算用户观看图像的毫秒数。这意味着图像在屏幕上的显示量


有人能帮忙吗?谢谢。

您可以使用Timer类来计算时间

  • 从头开始计时
  • 使用OnScrollListener在每个滚动中使用getFirstVisiblePosition()检查当前可见的项目
  • 如果位置改变,则增加相应项目的查看时间并重置计时器
  • 当项目部分可见时,您可以使用listItem.getTop()listItem.getBottom()找到这两个项目的可见部分,并假设用户正在查看具有更高可见部分的项目。(您说过“每个listview项目的高度接近屏幕的高度”。因此,一次最多必须有两个项目)

注意:检查项目的查看时间时,如果计时器是当前项,请不要忘记添加计时器中的值。

使用计时器任务,当用户滚动时重新启动它。但是,如果他只滚动了一点点,图像仍然完全可见,该怎么办?检查GetItem,但如果我向下滚动,第一个可见图像可能几乎不可见,第二张图像几乎是完全可见的,所以从技术上讲,你看的是第二张图像,而不是第一张。