Android - Проблема с ленивой загрузкой отображает в ListView

Длина сегмента не важна, таким образом использования квадратного корня не требуют и нужно избежать, так как мы могли потерять некоторую точность.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class Segment:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def is_between(self, c):
        # Check if slope of a to c is the same as a to b ;
        # that is, when moving from a.x to c.x, c.y must be proportionally
        # increased than it takes to get from a.x to b.x .

        # Then, c.x must be between a.x and b.x, and c.y must be between a.y and b.y.
        # => c is after a and before b, or the opposite
        # that is, the absolute value of cmp(a, b) + cmp(b, c) is either 0 ( 1 + -1 )
        #    or 1 ( c == a or c == b)

        a, b = self.a, self.b             

        return ((b.x - a.x) * (c.y - a.y) == (c.x - a.x) * (b.y - a.y) and 
                abs(cmp(a.x, c.x) + cmp(b.x, c.x)) <= 1 and
                abs(cmp(a.y, c.y) + cmp(b.y, c.y)) <= 1)

Некоторый случайный пример использования:

a = Point(0,0)
b = Point(50,100)
c = Point(25,50)
d = Point(0,8)

print Segment(a,b).is_between(c)
print Segment(a,b).is_between(d)
7
задан Community 23 May 2017 в 12:24
поделиться

2 ответа

В связанном решении fetchDrawableOnThread () следует вызывать только в том случае, если в представлении еще нет правильного объекта для рисования.

Представление не имеет возможности для рисования, если getDrawable () возвращает значение null.

Если вы повторно используете слоты, вы просматриваете, вам нужно идти дальше и управлять состоянием. Если в ваших представлениях есть переменная-член, хранящая URL-адрес, и логическое значение, указывающее, загружена ли она, было бы легко узнать, вызывать ли, например, fetchDrawableOnThread () или нет.

I Можно предположить, что метод drawable toString () детализирует путь, из которого было загружено изображение. (Если это не так, вы можете подклассифицировать возвращаемый drawable, чтобы сделать это так). В этом случае, вы могли бы избежать логического значения, описанного выше, и просто провести сравнение, чтобы определить, подходит ли он для рисования или нужно ли получить замену.

Кроме того, ваш getView () в видимой строке должен гарантировать, что те, которые больше не видны, будут выгружены, для предотвращения истощения памяти. Уловкой было бы переместить больше не видимые изображения на мягкие ссылки (чтобы они выгружались, когда требуется память), как отметил другой плакат в исходной ветке.

3
ответ дан 6 December 2019 в 19:39
поделиться

У меня есть ThumbnailAdapter , который завершает весь этот шаблон, который может помочь.

2
ответ дан 6 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: