2011-12-08 2 views
1

하나의 이미지를 가운데에 표시 할 캔버스가 하나 있습니다. 이 이미지는 URL로 다운로드됩니다. 사실 더 많은 이미지를 다운로드 할 수 있습니다. 즉, 사용자가 오른쪽을 클릭하면 LEFT를 선택하면 다음 이미지를 표시해야하며, 뒷면에 다른 이미지 하나를 표시해야합니다. 나는 url의 이미지를 저장하는 문자열 배열을 가지고있다. 백그라운드에서 이전 및 다음 이미지를 다운로드하고 싶습니다. 그렇게하는 방법? 다음j2me에서 백그라운드로 이미지를 다운로드하는 방법은 무엇입니까?

답변

0

그런 짓을 ..

Thread t = new Thread(new Runnable(){ 
    public void run() { 
    // Your code to download image here as you were doing earlier, 
    // for previous and next image 
    } 
}); 

t.start(); 
1

는이 요구 사항은 장치의 범위에 걸쳐 작동하려면 고려해야 할 몇 가지 문제

  1. 이미지에 비해 큰 무엇 경우입니다 장치 캔버스 크기에? 이미지 크기 w * h는 캔버스 w * h와 비교할 때 매우 높습니다.
  2. 낮은 메모리 장치로 큰 이미지를로드 할 수 있습니까?
  3. 여러 장치에서 일관성없는 다중 스레드 모델. 그것은 다른 장치에서 2로 멈추는 동안 10 개의 스레드를 생성 할 수있는 장치입니다.
  4. 내 응용 프로그램이 이미지 가져 오기 유형을 지원할 수 있습니까? 그것은 .JPG/.GIF를 다운로드하고 있지만 내 장치는 지원하지 않습니다.
  5. 이미지를 캐시하는 방법은 무엇입니까? 이미지를 탐색 할 때 동일한 이미지를 반복해서로드 하시겠습니까?
  6. 이미지 콘텐츠를 다운로드 할 때 TCP/HTTP/RMI를 사용합니까?
  7. 이 코드는 JVM for JavaME의 다양한 기능을 통해 이식 가능합니까? 마음에 당신이 당신의 문제에 대한 건설적인 대답으로 업 착륙 할 문제의 위의 설정을 유지

하고 목록이 계속 .....

는 네트워크 IO 관리자 및 캐싱을 만드는 것입니다 매니저.

interface NetworkIoItem { 
    Object sourceComponent; 

    public void onImageDownload(Image image) { 
      //Trigger the source 
    } 
} 

.

class NetworkIoManager extends Threads { 
    Vector pendingRequestQueue; 

    : 
    : 

    public void run() { 
      //Wait on the pending request queue 

      //Process all the elements in pending request queue 
      //and again wait on this queue 
    } 
} 

. 각 이미지에 대한 지금

class CacheManager { 
    Vector cachedContent; 

    public boolean checkIfCached() { 
      //Check in the cachedContent whether 
      //this image exists if so return true; 
    } 

    public Image fetchImage() { 
      //Check if the image is cached 
      //if so return this cached image 

      //else push a NetworkIoItem object to 
      //NetworkIOManager pending queue 
    } 
} 

(현재, 왼쪽 또는 오른쪽) CacheManager.fetchImage()를 호출,이 방법은 당신에게 캐시 또는 서버에서 다운로드하거나 이미지를 제공 처리됩니다. 동일한 방법으로 이미지가 캐싱되지 않으면 NetworkIoManager 펜딩 큐NetworkIoItem objbect를 추가하고 다운로드하십시오. 다운로드가 완료되면 NetworkIoItem.onImageDownload(...) 메서드가 트리거됩니다. 당신은 비동기 이미지를 할 것입니다이 방법을 사용하여 NetworkIoManager

에 이미지를 다운로드 할 수 J2ME Polish's Touch 기능을 사용할 수 있습니다

는 요청 URL을 가져옵니다.

+0

내 응용 프로그램에서 사용하는 방법을 알려주시겠습니까? –

+0

또는 그것을 사용하는 방법을 보여주는 예제? –

+0

당신은 내가 다른 도서관 (LWUIT)에 대해 설명했는지 [this] (http://stackoverflow.com/questions/8422187/lwuit-load-images-in-background-thread/8424183#8424183) 링크를 참조 할 수 있습니다. 구현을 이해할 수 있습니다. 나는 개인적으로 J2ME 폴란드어를 사용하여 그러한 논리를 채택하는 응용 프로그램을 사용하거나 보지 못했습니다. – Vimal

관련 문제