locked
WP7: картинки в памяти занимают слишком много места. RRS feed

  • Вопрос

  • Есть ListBox, в который загружается 90 картинок. Картинки могут очень быстро скроллироваться, поэтому динамическую подгрузку организовывать не получится. Когда картинки все подгрузились, система говорит, что приложение занимает 120Мб, хотя вес всех картинок на диске не превышает 11Мб.

    Все бы ничего, если бы в маркете не было бы ограничений в 90Мб по использованию памяти в приложениях.

    11 апреля 2011 г. 15:12

Ответы

  • Помогла замена StackPanel на VirtualizingStackPanel в листе.
    • Помечено в качестве ответа Anton.Maksimov 13 апреля 2011 г. 17:55
    13 апреля 2011 г. 17:55

Все ответы

  • В чём собственно заключается вопрос? То что отображаемые картинки хранятся и обрабатываются в оперативной памяти не в сжатом виде - понятно. Ответ содержится в вопросе: надо оптимизировать. А путей много, в зависимости от поставленной цели. Можно и картинки заменить на векторные, можно уменьшить разрешение растровых и т.д.
    11 апреля 2011 г. 22:23
  • И еще: не совсем понятно зачем скроллировать на мобильной платформе полноразмерные изображения, а это так судя по размеру в 11 Мб, надо отказываться от таких решений и для скролла использовать уменьшенные варианты.
    12 апреля 2011 г. 4:15
  • Вопрос в том, что нужно сократить использование памяти до 90 мб. Картинки - фотографии, их не особо сделаешь векторными. Уменьшение разрешения тоже не помогает.
    12 апреля 2011 г. 5:37
  • 11мб = 90 картинок. Уменьшенные варианты не подоходят по интерфейсу. Представьте себе, что у вас в альбоме при полном просмотре есть кнопка, которая отправляет вас к первой картинке. При этом, вам обязательно нужно "пролистать" все картинки до начальной с анимацией.
    12 апреля 2011 г. 5:43
  • Если картинки скроллируются - то скорее всего все картинки в листпикере. Надо уходить от этого, оставить один контрол с изображением и динамически его менять, смена картинок при листании должна только возрасти. Иначе ничего не добьетесь. В мобильной платформе приходится идти на компромис.
    12 апреля 2011 г. 10:40
  • Помогла замена StackPanel на VirtualizingStackPanel в листе.
    • Помечено в качестве ответа Anton.Maksimov 13 апреля 2011 г. 17:55
    13 апреля 2011 г. 17:55