O <img>
Etiketleme-içine yönlendirmek ImageData base64 olarak kodlanmış embedd mümkündür: Burada
<img src="data:image/jpeg;base64,base64DataHere" />
<img>
-tag oluşturmak için bir örnek (Ben bir veri kaynağı olarak dize yerine bir bayt dizisi kullanıyorum, çünkü bir dize olarak kaynak benim çalışmadı - Dize, ikili veriyi işleyemediğini varsayalım):
byte[] imageRaw = yourImage;
String image64 = Base64.encodeToString(imageRaw, Base64.DEFAULT);
String pageData = "<img src=\"data:image/jpeg;base64," + image64 + "\" />";
Base64 sınıfı i API v.2.2 ile oluşturulmuş - eski API sürümleri için sourcefile from git'u kopyalayabilir ve uygulamanıza entegre edebilirsiniz. Eski API sürümleriyle çalışmalıdır. Veya Base64Coder gibi base64 kodlaması için alternatif sınıflardan birini kullanabilirsiniz.
Ve burada görüntü, alma dönüştürme ve göstermek için komple çalışma kodu
:
byte[] imageRaw = null;
try {
URL url = new URL("http://some.domain.tld/somePicture.jpg");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
out.flush();
imageRaw = out.toByteArray();
urlConnection.disconnect();
in.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String image64 = Base64.encodeToString(imageRaw, Base64.DEFAULT);
String urlStr = "http://example.com/my.jpg";
String mimeType = "text/html";
String encoding = null;
String pageData = "<img src=\"data:image/jpeg;base64," + image64 + "\" />";
WebView wv;
wv = (WebView) findViewById(R.id.webview);
wv.loadDataWithBaseURL(urlStr, pageData, mimeType, encoding, urlStr);
En azından bu iki verilerini alırken önler. Her zaman "text/html" ise API'daki mimetype konusunu ele almaz. –
Ağdan getirilen bir görüntüün web görüntülemede hiç yapılmadığı bir sorun yaşadım ( sami
Yukarıdakilere dayanarak kod kullanırken, URL'deki satır besleme desteğiyle ilgili olarak Chromium'dan yapılan Logcat kullanımdan kaldırılma uyarılarını fark ettim. Tahmin ettiğim şey, son aylarda yalnızca uyarı vermeye başladı. Uyarılar, hat beslemeli URL'lerin desteklenmesinin muhtemelen Ağustos 2017'ye kadar engelleneceğini belirtir. Bu satır beslemelerini önlemek için 'Base64.NO_WRAP' kullandığımda bu uyarılar artık oluşmaz. – Trevor