2012-01-27 28 views
2

埋め込みブラウザを使用してHTMLコンテンツを表示するBlackBerryアプリを開発しています。
TorchでのアプリケーションのテストリムーバブルSDカードまたは内部ファイルシステムに保存されている画像リソースファイルにアクセスする際に問題が発生しているのに対し、プロジェクトに埋め込まれた画像のみがブラウザで表示されることを認識しました。
Curveで実行されている同じアプリケーションがすべての画像を正しく表示します。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を使用してファイルにアクセスすると正常に動作します。

トーチとカーブの両方に画像を表示する方法についてのご意見はありますか? ありがとう

答えて

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> 
} 
は、私はそれが回避策です知っているが、それは動作します!

関連する問題