2015-04-11 4 views
0

Я ищу, чтобы загрузить загруженное изображение в качестве фона моей формы, и я нахожу его очень пораженным и скучным. Надеюсь, кто-то может помочь мне сделать его более последовательным.codenameone URLImage.createToStorage изображение в качестве фона

Вот пример URL у меня есть как URL пары в моем createToStorage вызова: http://lh3.ggpht.com/W6L1y47LAs1CtVm-klw7XozYAdCT2heYM9pTmrsYF7GNBFT5_i9OvplZk1yTB7Tnb2yHFgW_f3wNbDd-XlfhoA=s360

и вот звонок:

URLImage image = URLImage.createToStorage(placeholder, imageId, imageUrl, URLImage.RESIZE_SCALE); 
image.fetch(); 

Я устанавливаю в качестве фона, как это:

Container contentPane = getForm().getContentPane(); 
contentPane.getUnselectedStyle().setBgImage(image); 
contentPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); 

, а иногда изображение загружается на склад и представляется в качестве фона, но в большинстве случаев это не так. d, чтобы добавить таймер для продолжения вызова изображения, пока он не готов, так вот, что у меня есть:

final URLImage image = URLImage.createToStorage(placeholder, imageId, imageUrl, URLImage.RESIZE_SCALE); 
    image.fetch(); 
    final Timer timer = new Timer(); 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      image.fetch(); 
      //image data will be different to placeholder data when successful 
      if(placeholder.getImageData() != image.getImageData()){ 
       timer.cancel(); 
       Container contentPane = getForm().getContentPane(); 
       contentPane.getUnselectedStyle().setBgImage(image); 
       contentPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); 
      } 
     } 
    },0,3000); 

Проблема с вызовом image.fetch() является то, что это уже выборки, так что это ничего не делать больше там. Данные изображения метки-заполнителя всегда совпадают с данными изображения, поэтому таймер никогда не останавливается. Я мог бы вызвать image.animate() как check to repaintImage, но он не возвращает true. Эти изображения будут загружаться при включении в средство отображения списка, но это не подходит для меня здесь. Точно так же для действительно маленьких изображений это более согласовано. Возможно, я что-то пропустил, но попробовал много способов получить эти изображения, и ни один из них не является достаточно последовательным, чтобы его можно было использовать. Возможно, я звоню в службу, которая поставляет изображение, а не только на сервер. Кто-нибудь уже прошел через это?

ответ

0

Это неправильный подход. fetch() просто инициирует выборку, и вы обычно не должны ее вызывать. Также убедитесь, что ваш заполнитель находится в точном разрешении, которое вы хотите для загруженного изображения, иначе вы получите артефакты.

URLImages полагаются на свойства анимации изображения, чтобы обновить себя, убедитесь, что вы установили URLImage перед добавлением компонента в пользовательский интерфейс. Если вы это сделаете, мне нужно будет понять, как вы установили изображение.