105 lines
37 KiB
HTML
105 lines
37 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Images | Markwon</title>
|
||
<meta name="description" content="Android markdown library based on commonmark specification that renders markdown as system-native Spannables (no WebView)">
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/Markwon/apple-touch-icon.png?v=1">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/Markwon/favicon-16x16.png?v=1">
|
||
<link rel="icon" href="/Markwon/favicon.ico?v=1">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/Markwon/favicon-32x32.png?v=1">
|
||
<link rel="manifest" href="/Markwon/manifest.json?v=1">
|
||
<meta name="keywords" content="android,markdown,library,spannable,markwon,commonmark">
|
||
|
||
<link rel="preload" href="/Markwon/assets/css/0.styles.3fbbce9e.css" as="style"><link rel="preload" href="/Markwon/assets/js/app.bdfd2bc6.js" as="script"><link rel="preload" href="/Markwon/assets/js/26.87c7e366.js" as="script"><link rel="preload" href="/Markwon/assets/js/3.eaac0903.js" as="script"><link rel="preload" href="/Markwon/assets/js/12.98308542.js" as="script"><link rel="prefetch" href="/Markwon/assets/js/42.d7ca0851.js"><link rel="prefetch" href="/Markwon/assets/js/2.81714ae9.js"><link rel="prefetch" href="/Markwon/assets/js/4.31fa5321.js"><link rel="prefetch" href="/Markwon/assets/js/5.6234b6a3.js"><link rel="prefetch" href="/Markwon/assets/js/6.ef59e46d.js"><link rel="prefetch" href="/Markwon/assets/js/7.e9b37c71.js"><link rel="prefetch" href="/Markwon/assets/js/8.9dff76ac.js"><link rel="prefetch" href="/Markwon/assets/js/9.7d018a47.js"><link rel="prefetch" href="/Markwon/assets/js/10.99fc608c.js"><link rel="prefetch" href="/Markwon/assets/js/11.cdc173e9.js"><link rel="prefetch" href="/Markwon/assets/js/13.83b81b01.js"><link rel="prefetch" href="/Markwon/assets/js/14.0e5fe31e.js"><link rel="prefetch" href="/Markwon/assets/js/15.724f3dc4.js"><link rel="prefetch" href="/Markwon/assets/js/16.076204be.js"><link rel="prefetch" href="/Markwon/assets/js/17.9412daf3.js"><link rel="prefetch" href="/Markwon/assets/js/18.187f0167.js"><link rel="prefetch" href="/Markwon/assets/js/19.af3507a7.js"><link rel="prefetch" href="/Markwon/assets/js/20.dc11e22f.js"><link rel="prefetch" href="/Markwon/assets/js/21.393a507f.js"><link rel="prefetch" href="/Markwon/assets/js/22.a6ac92c5.js"><link rel="prefetch" href="/Markwon/assets/js/23.9edcc0b3.js"><link rel="prefetch" href="/Markwon/assets/js/24.073942b3.js"><link rel="prefetch" href="/Markwon/assets/js/25.507307eb.js"><link rel="prefetch" href="/Markwon/assets/js/27.a6f7a96f.js"><link rel="prefetch" href="/Markwon/assets/js/28.c0caacb4.js"><link rel="prefetch" href="/Markwon/assets/js/29.230c7321.js"><link rel="prefetch" href="/Markwon/assets/js/30.45e92827.js"><link rel="prefetch" href="/Markwon/assets/js/31.3a2ff699.js"><link rel="prefetch" href="/Markwon/assets/js/32.662e2ab9.js"><link rel="prefetch" href="/Markwon/assets/js/33.d83b2cb7.js"><link rel="prefetch" href="/Markwon/assets/js/34.4b19ef85.js"><link rel="prefetch" href="/Markwon/assets/js/35.1684da38.js"><link rel="prefetch" href="/Markwon/assets/js/36.9852715d.js"><link rel="prefetch" href="/Markwon/assets/js/37.e98b3352.js"><link rel="prefetch" href="/Markwon/assets/js/38.09771599.js"><link rel="prefetch" href="/Markwon/assets/js/39.37003a65.js"><link rel="prefetch" href="/Markwon/assets/js/40.bf595a01.js"><link rel="prefetch" href="/Markwon/assets/js/41.db50f781.js"><link rel="prefetch" href="/Markwon/assets/js/43.78500964.js"><link rel="prefetch" href="/Markwon/assets/js/44.60fec7f9.js"><link rel="prefetch" href="/Markwon/assets/js/45.78224b99.js"><link rel="prefetch" href="/Markwon/assets/js/46.9a7f306b.js"><link rel="prefetch" href="/Markwon/assets/js/47.42b56911.js"><link rel="prefetch" href="/Markwon/assets/js/48.cceb75d4.js"><link rel="prefetch" href="/Markwon/assets/js/49.20507df8.js"><link rel="prefetch" href="/Markwon/assets/js/50.f89d88b1.js"><link rel="prefetch" href="/Markwon/assets/js/51.d7ac54ce.js"><link rel="prefetch" href="/Markwon/assets/js/52.394ded4e.js"><link rel="prefetch" href="/Markwon/assets/js/53.144cf408.js"><link rel="prefetch" href="/Markwon/assets/js/54.0f936c4f.js"><link rel="prefetch" href="/Markwon/assets/js/55.5b7382a9.js"><link rel="prefetch" href="/Markwon/assets/js/56.1cf2f788.js"><link rel="prefetch" href="/Markwon/assets/js/57.1b7dddc1.js"><link rel="prefetch" href="/Markwon/assets/js/58.5271aaaf.js"><link rel="prefetch" href="/Markwon/assets/js/59.7ef6ac9a.js"><link rel="prefetch" href="/Markwon/assets/js/60.9bbfa80f.js"><link rel="prefetch" href="/Markwon/assets/js/61.628c1500.js"><link rel="prefetch" href="/Markwon/assets/js/62.d4d206d7.js"><link rel="prefetch" href="/Markwon/assets/js/63.8ccf8bfc.js"><link rel="prefetch" href="/Markwon/assets/js/64.7672a52b.js"><link rel="prefetch" href="/Markwon/assets/js/65.c4f000dc.js"><link rel="prefetch" href="/Markwon/assets/js/66.4a29728a.js"><link rel="prefetch" href="/Markwon/assets/js/67.7331c7c7.js"><link rel="prefetch" href="/Markwon/assets/js/68.9d1d2ae1.js"><link rel="prefetch" href="/Markwon/assets/js/69.fd31295a.js"><link rel="prefetch" href="/Markwon/assets/js/70.fac8f892.js"><link rel="prefetch" href="/Markwon/assets/js/71.c3fcfb65.js"><link rel="prefetch" href="/Markwon/assets/js/72.d2389fc9.js"><link rel="prefetch" href="/Markwon/assets/js/73.6ce21170.js"><link rel="prefetch" href="/Markwon/assets/js/74.2ad91074.js"><link rel="prefetch" href="/Markwon/assets/js/75.1d59d27c.js"><link rel="prefetch" href="/Markwon/assets/js/76.f3844391.js"><link rel="prefetch" href="/Markwon/assets/js/77.4e5a82c3.js"><link rel="prefetch" href="/Markwon/assets/js/78.ff7203ee.js"><link rel="prefetch" href="/Markwon/assets/js/79.b1718a0d.js"><link rel="prefetch" href="/Markwon/assets/js/80.802db0eb.js"><link rel="prefetch" href="/Markwon/assets/js/81.9edd3cd9.js"><link rel="prefetch" href="/Markwon/assets/js/82.52f04a34.js"><link rel="prefetch" href="/Markwon/assets/js/83.3bd397c0.js"><link rel="prefetch" href="/Markwon/assets/js/84.a9af8a34.js"><link rel="prefetch" href="/Markwon/assets/js/85.2a0d8d40.js">
|
||
<link rel="stylesheet" href="/Markwon/assets/css/0.styles.3fbbce9e.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/Markwon/" class="home-link router-link-active"><!----> <span class="site-name">Markwon</span></a> <div class="links" style="max-width:nullpx;"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/Markwon/docs/v4/install.html" class="nav-link">Install</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">API Version</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Latest</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/" class="nav-link">4.x.x</a></li></ul></li><li class="dropdown-item"><h4>Legacy</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/docs/v3/install.html" class="nav-link">3.x.x</a></li><li class="dropdown-subitem"><a href="/Markwon/docs/v2/" class="nav-link router-link-active">2.x.x</a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://github.com/noties/Markwon/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Changelog
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/noties/Markwon" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Github
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/Markwon/docs/v4/install.html" class="nav-link">Install</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">API Version</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Latest</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/" class="nav-link">4.x.x</a></li></ul></li><li class="dropdown-item"><h4>Legacy</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/docs/v3/install.html" class="nav-link">3.x.x</a></li><li class="dropdown-subitem"><a href="/Markwon/docs/v2/" class="nav-link router-link-active">2.x.x</a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://github.com/noties/Markwon/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Changelog
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/noties/Markwon" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||
Github
|
||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/Markwon/docs/v2/getting-started.html" class="sidebar-link">Getting started</a></li><li><a href="/Markwon/docs/v2/install.html" class="sidebar-link">Installation</a></li><li><a href="/Markwon/docs/v2/configure.html" class="sidebar-link">Configuration</a></li><li><a href="/Markwon/docs/v2/theme.html" class="sidebar-link">Theme</a></li><li><a href="/Markwon/docs/v2/factory.html" class="sidebar-link">Factory</a></li><li><a href="/Markwon/docs/v2/image-loader.html" class="active sidebar-link">Images</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#asyncdrawableloader" class="sidebar-link">AsyncDrawableLoader</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#scheme-support" class="sidebar-link">Scheme support</a></li></ul></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#configuration" class="sidebar-link">Configuration</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#okhttp-client" class="sidebar-link">OkHttp client</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#resources" class="sidebar-link">Resources</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#executor-service" class="sidebar-link">Executor service</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#error-drawable" class="sidebar-link">Error drawable</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#media-decoder" class="sidebar-link">Media decoder</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/image-loader.html#scheme-handler" class="sidebar-link">Scheme handler</a></li></ul></li></ul></li><li><a href="/Markwon/docs/v2/syntax-highlight.html" class="sidebar-link">Syntax highlight</a></li><li><a href="/Markwon/docs/v2/html.html" class="sidebar-link">HTML</a></li><li><a href="/Markwon/docs/v2/view.html" class="sidebar-link">MarkwonView</a></li></ul> </div> <div class="page"> <div class="content"><h1 id="images"><a href="#images" aria-hidden="true" class="header-anchor">#</a> Images</h1> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p>This is documentation for <u>legacy</u> versions. For the most current version <a href="/Markwon/">click here.</a></p></div> <p>By default <code>Markwon</code> doesn't handle images. Although <code>AsyncDrawable.Loader</code> is
|
||
defined in main artifact, it does not provide implementation.</p> <p>The interface is pretty simple:</p> <div class="language-java extra-class"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">interface</span> <span class="token class-name">Loader</span> <span class="token punctuation">{</span>
|
||
|
||
<span class="token keyword">void</span> <span class="token function">load</span><span class="token punctuation">(</span><span class="token annotation punctuation">@NonNull</span> String destination<span class="token punctuation">,</span> <span class="token annotation punctuation">@NonNull</span> AsyncDrawable drawable<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">void</span> <span class="token function">cancel</span><span class="token punctuation">(</span><span class="token annotation punctuation">@NonNull</span> String destination<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><h2 id="asyncdrawableloader"><a href="#asyncdrawableloader" aria-hidden="true" class="header-anchor">#</a> AsyncDrawableLoader</h2> <a href="http://search.maven.org/#search|ga|1|g%3A%22ru.noties%22%20AND%20a%3A%22markwon-image-loader%22"><img src="https://img.shields.io/maven-central/v/ru.noties/markwon-image-loader.svg?label=markwon-image-loader" alt="markwon-image-loader"></a> <p><code>AsyncDrawableLoader</code> from <code>markwon-image-loader</code> artifact can be used.</p> <div class="tip custom-block"><p class="custom-block-title">Install</p> <p><a href="/Markwon/docs/v2/install.html#image-loader">Learn how to add</a> <code>markwon-image-loader</code> to your project</p></div> <p>Default instance of <code>AsyncDrawableLoader</code> can be obtain like this:</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><h3 id="scheme-support"><a href="#scheme-support" aria-hidden="true" class="header-anchor">#</a> Scheme support</h3> <p>By default <code>AsyncDrawableLoader</code> handles these URL schemes:</p> <ul><li><code>file</code> (including reference to <code>android_assets</code>)</li> <li><code>data</code> <span class="badge tip top" data-v-099ab69c>2.0.0</span> (<a href="https://en.wikipedia.org/wiki/Data_URI_scheme" target="_blank" rel="noopener noreferrer">wiki<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>)
|
||
for inline image references</li> <li>all other schemes are considered to be network related and will be tried to obtain
|
||
from network</li></ul> <h4 id="data"><a href="#data" aria-hidden="true" class="header-anchor">#</a> Data <span class="badge tip top" data-v-099ab69c>2.0.0</span></h4> <p><code>data</code> scheme handler supports both <code>base64</code> encoded content and <code>plain</code>:</p> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Red dot<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
|
||
</code></pre></div><div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">'</span>data:image/svg+xml,<svg xmlns=<span class="token punctuation">"</span>http://www.w3.org/2000/svg<span class="token punctuation">"</span> aria-hidden=<span class="token punctuation">"</span>true<span class="token punctuation">"</span> x=<span class="token punctuation">"</span>0px<span class="token punctuation">"</span> y=<span class="token punctuation">"</span>0px<span class="token punctuation">"</span> viewBox=<span class="token punctuation">"</span>0 0 100 100<span class="token punctuation">"</span> width=<span class="token punctuation">"</span>15<span class="token punctuation">"</span> height=<span class="token punctuation">"</span>15<span class="token punctuation">"</span> class=<span class="token punctuation">"</span>icon outbound<span class="token punctuation">"</span>><path fill=<span class="token punctuation">"</span>currentColor<span class="token punctuation">"</span> d=<span class="token punctuation">"</span>M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z<span class="token punctuation">"</span>></path> <polygon fill=<span class="token punctuation">"</span>currentColor<span class="token punctuation">"</span> points=<span class="token punctuation">"</span>45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9<span class="token punctuation">"</span>></polygon></svg><span class="token punctuation">'</span></span> <span class="token punctuation">></span></span>
|
||
</code></pre></div><div class="warning custom-block"><p class="custom-block-title">Note</p> <p>Data uri works with native markdown images, but only in base64 mode:</p> <div class="language-markdown extra-class"><pre class="language-markdown"><code><span class="token url"></span>
|
||
</code></pre></div></div> <h2 id="configuration"><a href="#configuration" aria-hidden="true" class="header-anchor">#</a> Configuration</h2> <p>If you wish to configure <code>AsyncDrawableLoader</code> <code>#builder</code> factory method can be used:</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><h3 id="okhttp-client"><a href="#okhttp-client" aria-hidden="true" class="header-anchor">#</a> OkHttp client</h3> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">client</span><span class="token punctuation">(</span>OkHttpClient<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>If not provided explicitly, default <code>new OkHttpClient()</code> will be used</p> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p>This configuration option is scheduled to be removed in <code>3.0.0</code> version,
|
||
use <code>NetworkSchemeHandler.create(OkHttpClient)</code> directly by calling
|
||
<code>build.addSchemeHandler()</code></p></div> <h3 id="resources"><a href="#resources" aria-hidden="true" class="header-anchor">#</a> Resources</h3> <p><code>android.content.res.Resources</code> to be used when obtaining an image
|
||
from Android assets folder <strong>and</strong> to create Bitmaps.</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">resources</span><span class="token punctuation">(</span>Resources<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>If not provided explicitly, default <code>Resources.getSystem()</code> will be used.</p> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p><code>Resources.getSystem()</code> can have unexpected side-effects (plus loading from
|
||
assets won't work). As a rule of thumb
|
||
always provide <code>AsyncDrawableLoader</code> with your Application's <code>Resources</code>.
|
||
To quote Android documentation for <code>#getSystem</code> method:</p> <blockquote><p>Return a global shared Resources object that provides access to only
|
||
system resources (no application resources), and is not configured
|
||
for the current screen (can not use dimension units, does not
|
||
change based on orientation, etc).</p></blockquote></div> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p>This configuration option is scheduled to be removed in <code>3.0.0</code>. Construct
|
||
your <code>MediaDecoder</code>s and <code>SchemeHandler</code>s appropriately and add them via
|
||
<code>build.addMediaDecoder()</code> and <code>builder.addSchemeHandler</code></p></div> <h3 id="executor-service"><a href="#executor-service" aria-hidden="true" class="header-anchor">#</a> Executor service</h3> <p><code>ExecutorService</code> to be used to download images in background thread</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">executorService</span><span class="token punctuation">(</span>ExecutorService<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>If not provided explicitly, default <code>Executors.newCachedThreadPool()</code> will be used</p> <h3 id="error-drawable"><a href="#error-drawable" aria-hidden="true" class="header-anchor">#</a> Error drawable</h3> <p><code>errorDrawable</code> to be used when image loader encountered an error loading image</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">errorDrawable</span><span class="token punctuation">(</span>Drawable<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>if not provided explicitly, default <code>null</code> value will be used.</p> <h3 id="media-decoder"><a href="#media-decoder" aria-hidden="true" class="header-anchor">#</a> Media decoder <span class="badge tip top" data-v-099ab69c>1.1.0</span></h3> <p><code>MediaDecoder</code> is a simple asbtraction that encapsulates handling
|
||
of a specific image type.</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">addMediaDecoder</span><span class="token punctuation">(</span>MediaDecoder<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">addMediaDecoders</span><span class="token punctuation">(</span>MediaDecoder<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">addMediaDecoders</span><span class="token punctuation">(</span>Iterable<span class="token generics function"><span class="token punctuation"><</span>MediaDecoder<span class="token punctuation">></span></span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>If not provided explicitly, default <code>MediaDecoder</code>s will be used (SVG, GIF, plain) with
|
||
provided <code>Resources</code> and <code>gif-autoplay=true</code></p> <p><code>markwon-image-loader</code> comes with 3 <code>MediaDecoder</code> implementations:</p> <ul><li><code>SvgMediaDecoder</code> (based on <a href="https://github.com/BigBadaboom/androidsvg" target="_blank" rel="noopener noreferrer">androidsvg<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>)</li> <li><code>GifMediaDecoder</code> (based on <a href="https://github.com/koral--/android-gif-drawable" target="_blank" rel="noopener noreferrer">android-gif-drawable<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>)</li> <li><code>ImageMediaDecoder</code> (handling all <em>plain</em> images)</li></ul> <div class="tip custom-block"><p class="custom-block-title">TIP</p> <p>Always add a <em>generic</em> <code>MediaDecoder</code> instance at the end of the list.
|
||
Order does matter. For example:</p> <div class="language-java extra-class"><div class="highlight-lines"><br><br><br><br><div class="highlighted"> </div><br><br><br></div><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">mediaDecoders</span><span class="token punctuation">(</span>
|
||
SvgMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>Resources<span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
GifMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token keyword">boolean</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
ImageMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>Resources<span class="token punctuation">)</span>
|
||
<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div></div> <h4 id="svgmediadecoder"><a href="#svgmediadecoder" aria-hidden="true" class="header-anchor">#</a> SvgMediaDecoder</h4> <div class="language-java extra-class"><pre class="language-java"><code>SvgMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>Resources<span class="token punctuation">)</span>
|
||
</code></pre></div><h4 id="gifmediadecoder"><a href="#gifmediadecoder" aria-hidden="true" class="header-anchor">#</a> GifMediaDecoder</h4> <div class="language-java extra-class"><pre class="language-java"><code>GifMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token keyword">boolean</span><span class="token punctuation">)</span>
|
||
</code></pre></div><p><code>boolean</code> argument stands for <code>autoPlayGif</code></p> <h4 id="imagemediadecoder"><a href="#imagemediadecoder" aria-hidden="true" class="header-anchor">#</a> ImageMediaDecoder</h4> <div class="language-java extra-class"><pre class="language-java"><code>ImageMediaDecoder<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>Resources<span class="token punctuation">)</span>
|
||
</code></pre></div><h3 id="scheme-handler"><a href="#scheme-handler" aria-hidden="true" class="header-anchor">#</a> Scheme handler <span class="badge tip top" data-v-099ab69c>2.0.0</span></h3> <p>Starting with <code>2.0.0</code> <code>image-loader</code> module introduced
|
||
<code>SchemeHandler</code> abstraction</p> <div class="language-java extra-class"><pre class="language-java"><code>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">addSchemeHandler</span><span class="token punctuation">(</span>SchemeHandler<span class="token punctuation">)</span>
|
||
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
</code></pre></div><p>Currently there are 3 <code>SchemeHandler</code>s that are bundled with this module:</p> <ul><li><code>NetworkSchemeHandler</code> (<code>http</code> and <code>https</code>)</li> <li><code>FileSchemeHandler</code> (<code>file</code>)</li> <li><code>DataUriSchemeHandler</code> (<code>data</code>)</li></ul> <h4 id="networkschemehandler"><a href="#networkschemehandler" aria-hidden="true" class="header-anchor">#</a> NetworkSchemeHandler <span class="badge tip top" data-v-099ab69c>2.0.0</span></h4> <div class="language-java extra-class"><pre class="language-java"><code>NetworkSchemeHandler<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>OkHttpClient<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><h4 id="fileschemehandler"><a href="#fileschemehandler" aria-hidden="true" class="header-anchor">#</a> FileSchemeHandler <span class="badge tip top" data-v-099ab69c>2.0.0</span></h4> <p>Simple file handler</p> <div class="language-java extra-class"><pre class="language-java"><code>FileSchemeHandler<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><p>File handler that additionally allows access to Android <code>assets</code> folder</p> <div class="language-java extra-class"><pre class="language-java"><code>FileSchemeHandler<span class="token punctuation">.</span><span class="token function">createWithAssets</span><span class="token punctuation">(</span>AssetManager<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><h4 id="dataurischemehandler"><a href="#dataurischemehandler" aria-hidden="true" class="header-anchor">#</a> DataUriSchemeHandler <span class="badge tip top" data-v-099ab69c>2.0.0</span></h4> <div class="language-java extra-class"><pre class="language-java"><code>DataUriSchemeHandler<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><hr> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p>Note that currently if no <code>SchemeHandler</code>s were provided via <code>builder.addSchemeHandler()</code>
|
||
call then all 3 default scheme handlers will be added. The same goes for <code>MediaDecoder</code>s
|
||
(<code>builder.addMediaDecoder</code>). This behavior is scheduled to be removed in <code>3.0.0</code></p></div></div> <div class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated: </span> <span class="time">6/17/2019, 2:08:33 PM</span></div></div> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/Markwon/docs/v2/factory.html" class="prev">
|
||
Factory
|
||
</a></span> <span class="next"><a href="/Markwon/docs/v2/syntax-highlight.html">
|
||
Syntax highlight
|
||
</a>
|
||
→
|
||
</span></p></div> </div> <!----></div></div>
|
||
<script src="/Markwon/assets/js/26.87c7e366.js" defer></script><script src="/Markwon/assets/js/3.eaac0903.js" defer></script><script src="/Markwon/assets/js/12.98308542.js" defer></script><script src="/Markwon/assets/js/app.bdfd2bc6.js" defer></script>
|
||
</body>
|
||
</html>
|