2012-01-27 2 views
2

나는 임베디드 브라우저를 사용하여 HTML 콘텐츠를 표시하는 BlackBerry 앱을 개발 중입니다.
Torch에서 응용 프로그램 테스트 이동식 SD 카드 또는 내부 파일 시스템에 저장된 이미지 리소스 파일에 액세스하는 동안 문제가 발생하는 동안 프로젝트에 포함 된 이미지 만 브라우저에 표시된다는 것을 깨달았습니다.
커브에서 실행중인 동일한 응용 프로그램이 모든 이미지를 올바르게 표시합니다.BlackBerry 임베디드 브라우저 : HTML을 사용하는 이미지 디스플레이

browser = new BrowserField(); 

    Strimg img_1 = "file:///store/home/user/yellow.png"; 
    Strimg img_2 = "file:///SDCard/green.png"; 
    Strimg img_3 = "file:///local/images/red.png"; 

String imgTag_1 = "<img src=\"" + img_1 + "\">"; // Stored on file system - Not displayed by Torch 
String imgTag_2 = "<img src=\"" + img_2 + "\">"; // Stored on SDCard - Not displayed by Torch 
String imgTag_3 = "<img src=\"" + img_3 + "\">"; // Embedded image 

String browserContent = "<html>" + imgTag_1 + imgTag_2 + imgTag_3 + "</html>"; 

byte[] contentBytes;   
try { 
    contentBytes = browserContent.getBytes("UTF-8"); 
    browser.displayContent(contentBytes, "text/html; charset=UTF-8", "http://mysite.com"); 
} catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
    browser.displayContent(browserContent, "http://mysite.com"); 
} 

aVerticalManager.add(browser); 


내가 모두 곡선과 횃불을위한 JRE (5)을 사용하고 있습니다 :
다음은 코드의 조각이다. FileConnector를 사용하여 파일에 액세스하면 정상적으로 작동합니다.

Torch와 Curve 모두에서 이미지를 표시하는 방법에 대한 제안 사항이 있으십니까? 감사합니다.

답변

2

해결되었습니다!
이하 나는 그것을 어떻게 설명 코드 :

browser = new BrowserField();  
String img_1 = "file:///store/home/user/yellow.png"; // File Sistem 

byte[] byt_1 = MyUtilClass.readBytesFromFile(img_1); 
char[] base64_1 = MyUtilClass.Base64.encode(byt_1); 

// Sample of generating HTML: <html><img src="data:image/bmp;base64,Axcfhhòjbnesohokòbw...."></img></html> 
String imgTag_1 = "<html><img src= \"data:image/bmp;base64,"+ String.valueOf(base64_1) + "\" ></img></html>"; 

byte[] contentBytes;  

contentBytes = imgTag_1.getBytes("UTF-8"); 

// Inject HTML in browser 
browser.displayContent(contentBytes, "text/html; charset=UTF-8", "http://mysite.com"); 


그래서,이 성화에 잘 작동하지만 내가 곡선에 부진 있습니다. 기기 유형에 따라 동작을 특화 할 것입니다.


if (Curve == true) { 
// Use: <img src=file:///store/home/user/yellow.png> 
} else { 
// Use: <img src="data:image/bmp;base64,Axcfhhòjbnesohokòbw...."></img> 
} 
나는 그 해결 방법을 알고 있지만, 그것을 작동합니다!

관련 문제