2016-08-14 3 views
1

이미지 뷰어와 관련하여 몇 가지 질문이 있습니다.ImageViewer is not fine codenameone

1) ImageViewer 자동 슬라이드가 작동하지 않습니다. imageViewer는 처음 앱을 시작할 때 작동합니다. 그러나 다른 형태가 열리 자마자 & imageViewer가 포함 된 양식으로 돌아 가면 autoslide가 작동하지 않습니다. IMG 뷰어 자동 슬라이드

placeholderForTable = (EncodedImage) theme.getImage("placeholderWithAnimate.png"); 
placeholderForTable = placeholderForTable.scaledEncoded(screenWidth, 30 + (screenWidth * 1/3)); 
BusinessForumImagesConnection bfic = new BusinessForumImagesConnection(); 
bfic.businessForumImagesConnectionMethod(new ActionListener() { 

@Override 
public void actionPerformed(ActionEvent evt) { 
    DefaultListModel<Image> images; 
    if (bfic.response != null) { 
     for (Map<String, Object> entrySet : bfic.response) { 
      String imgUrl = (String) entrySet.get("imgUrl"); 
      Image adImage = URLImage.createToStorage(placeholderForTable, imgUrl.substring(0, imgUrl.lastIndexOf(".")), + imgUrl, URLImage.RESIZE_SCALE); 
      adsSlideImagesArray.add(adImage); 
     } 
    } 

    ImageViewer imv = new ImageViewer(); 
    Container adsContainer = BoxLayout.encloseY(imv); 

    if (adsSlideImagesArray != null) { 
     slideIndex = 0; 
     images = new DefaultListModel<>(adsSlideImagesArray); 
     imv.setImage(images.getItemAt(0)); 
     imv.setImageList(images); 
     imv.setSwipePlaceholder(Image.createImage(100, 100)); 
     Runnable r = new Runnable() { 
      public void run() { 
       if (slideIndex < images.getSize()) { 
        nextImage = (Image) images.getItemAt(slideIndex); 
        if (nextImage != null) { 
         imv.setImage(nextImage); 
        } 
        slideIndex++; 
       } else { 
        slideIndex = 0; 
       } 
      } 
     }; 
     if (uITimer == null) { 
      uITimer = new UITimer(r); 
     } 
     if (uITimer != null) { 
      uITimer.schedule(5000, true, f); //5 seconds 
     } 
    } 
}); 

2)에 대한

코드는 어떤 임의의 이미지는 항상 이미지 뷰어에 표시되지 않습니다. 두 시뮬레이터 & 실제 장치에서 발생합니다. UrlImage가 캐시에 저장되어 있는지 또는 저장되어 있는지 확인했습니다. 저장된 모든 파일이 있지만 일부는 이미지 뷰어에 표시되지 않습니다. 이미지 뷰어 대신 레이블에 이미지 아이콘을 설정하고 반복합니다. 모든 레이블에는 각각 아이콘이 있지만 imageViewer에는 문제가 있습니다. 코드는 위와 같습니다.

답변

0
  1. 타이머가 작동하고 아무도 그것을 취소하지 않았는지 확인하십시오.

  2. 이미지 대신 자리 표시자가 나타 납니까? 그런 세부 사항은 필수적입니다.

이미지 뷰어 스택에서 더 깊은 이미지는 미리 가져 오지 않습니다. URLImage은 이미지 뷰어 용으로 설계되지 않았으므로 URLImage 이미지의 크기를 조정하기 때문에 나쁜 생각 일 수 있습니다. 우리는 이미지 뷰어에 대한 전체 크기의 이미지가이 이전 게시물을 참조 얻을 수있는 다운로드 방법을 사용하는 것이 좋습니다 : 실행 가능한 작품 내부 https://www.codenameone.com/blog/image-viewer-from-the-web.html

+0

에서 System.out.println (nextImage)를, 그래서 내가 타이머가 잘 작동 생각하지만 autoslide 중지합니다. 그리고 두 번째 질문에 대해서는, yeahh는 실제 이미지 대신에 단지 자리 표시 자 img 만 보았습니다 (Ps는 .cn1 폴더에 이미 저장되어 있습니다). 그러나 그것은 표시되지 않습니다. – beck

+0

'URLImage'는 특별합니다. 이미지 뷰어에 사용하지 마십시오. 디버거를 사용하고 타이머가 현재 화면에있는 뷰를 애니메이션으로 표시하는지 확인하는 것이 좋습니다. –

+0

감사합니다 ... 나는 그것을 해결했습니다. 타이머의 경우 null이되면 uiTimer를 초기화했다는 작은 실수가있었습니다. 그래서 그것은 처음으로 실행됩니다 그리고 만약 내가 다른 형태 로이 양식에 컴백, 그것은 나던 작동하지 않습니다. 처음에는 uiTimer = null로 설정하면 문제가 해결됩니다. – beck