gpt4 book ai didi

Android 只下载 horizo​​ntalScrollView 可见的图片

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:42 25 4
gpt4 key购买 nike

我有一个 Horizo​​ntalScrollView,其中包含一个 LinearLayout 来容纳我的所有 View 。我向 LinearLayout 添加了大约 20 个包含 ImageView 和 TextView 的 RelativeLayout。如果 ImageView 在屏幕上(当我滚动到 ImageView 时),我只想加载图像。

我尝试关注 this post要在缩略图上使用 getHitRect(),但是,缩略图的 Rect(边界)始终为 0、0-0、0,导致我的方法返回 false。我做错了什么?

thumbnailLayout 是我在 Horizo​​ntalScrollView 中的 LinearLayout
thumbnailScroll 是我的 Horizo​​ntalScrollView

runOnUiThread(new Runnable() {

@Override
public void run() {
Log.e(TAG, "running");
for (int i = 0; i < thumbnailLayout.getChildCount(); i++) {
RelativeLayout view = (RelativeLayout) thumbnailLayout.getChildAt(i);
ImageView thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
if (thumbnailIsOnScreen(thumbnail)) {
Log.e(TAG, items.get(i).getTitle() + " has downloaded");
app.setImage(items.get(i).getThumbnailSmall(), thumbnail);
}
}


}
});

private boolean thumbnailIsOnScreen(ImageView thumbnail) {
Rect bounds = new Rect();
thumbnail.getHitRect(bounds);

Rect scrollBounds = new Rect(thumbnailScroll.getScrollX(), thumbnailScroll.getScrollY(),
thumbnailScroll.getScrollX() + thumbnailScroll.getWidth(), thumbnailScroll.getScrollY()
+ thumbnailScroll.getHeight());
return Rect.intersects(scrollBounds, bounds);
}

编辑我很喜欢使用 TreeObserver,发现我检查缩略图是否在屏幕上的方法是错误的。它仍然抓取所有图像,并不断循环(因为我正在使用 onPreDrawListener?)

thumbnailLayout.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {

@Override
public boolean onPreDraw() {
Log.e(TAG, "running");

for (int i = 0; i < thumbnailLayout.getChildCount(); i++) {
RelativeLayout view = (RelativeLayout) thumbnailLayout.getChildAt(i);
ImageView thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
if (thumbnailIsOnScreen(thumbnail)) {
Log.e(TAG, items.get(i).getTitle() + " has downloaded");
app.setImage(items.get(i).getThumbnailSmall(), thumbnail);
}
}
return true;
}
});

最佳答案

您是否考虑过使用 ViewPager? http://developer.android.com/reference/android/support/v4/view/ViewPager.html

如果这不适合您的设计,您需要覆盖 ScrollView -> 函数 onScrollChanged 并在那里检查屏幕中的图像是否检查图像(左?)位置与滚动位置的比较。

关于Android 只下载 horizo​​ntalScrollView 可见的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com