page.title=Displaying Bitmaps Efficiently
page.tags=bitmaps,images,graphics

trainingnavtop=true
startpage=true

@jd:body

<div id="tb-wrapper">
<div id="tb">

<h2>Dependencies and prerequisites</h2>
<ul>
  <li>Android 2.1 (API Level 7) or higher</li>
  <li><a href="{@docRoot}tools/support-library/index.html">Support Library</a></li>
</ul>

<h2>Try it out</h2>

<div class="download-box">
  <a href="{@docRoot}shareables/training/BitmapFun.zip" class="button">Download the sample</a>
  <p class="filename">BitmapFun.zip</p>
</div>

</div>
</div>

<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=rsQet4nBVi8">
<div>
    <h3>Video</h3>
    <p>DevBytes: Bitmap Allocation</p>
</div>
</a>

<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=pMRnGDR6Cu0">
<div>
    <h3>Video</h3>
    <p>DevBytes: Making Apps Beautiful - Part 4 - Performance Tuning</p>
</div>
</a>

<p>Learn how to use common techniques to process and load {@link
android.graphics.Bitmap} objects in a way that keeps your user interface (UI) components responsive
and avoids exceeding your application memory limit. If you're not careful, bitmaps can quickly
consume your available memory budget leading to an application crash due to the dreaded
exception:<br />{@code java.lang.OutofMemoryError: bitmap size exceeds VM budget}.</p>

<p>There are a number of reasons why loading bitmaps in your Android application is tricky:</p>

<ul>
  <li>Mobile devices typically have constrained system resources. Android devices can have as little
  as 16MB of memory available to a single application. The <a
  href="http://source.android.com/compatibility/downloads.html">Android Compatibility Definition
  Document</a> (CDD), <i>Section 3.7. Virtual Machine Compatibility</i> gives the required minimum
  application memory for various screen sizes and densities. Applications should be optimized to
  perform under this minimum memory limit. However, keep in mind many devices are configured with
  higher limits.</li>
  <li>Bitmaps take up a lot of memory, especially for rich images like photographs. For example, the
  camera on the <a href="http://www.android.com/devices/detail/galaxy-nexus">Galaxy Nexus</a> takes 
  photos up to 2592x1936 pixels (5 megapixels). If the bitmap configuration used is {@link
  android.graphics.Bitmap.Config ARGB_8888} (the default from the Android 2.3 onward) then loading
  this image into memory takes about 19MB of memory (2592*1936*4 bytes), immediately exhausting the
  per-app limit on some devices.</li>
  <li>Android app UI’s frequently require several bitmaps to be loaded at once. Components such as
  {@link android.widget.ListView}, {@link android.widget.GridView} and {@link
  android.support.v4.view.ViewPager} commonly include multiple bitmaps on-screen at once with many
  more potentially off-screen ready to show at the flick of a finger.</li>
</ul>

<h2>Lessons</h2>

<dl>
  <dt><b><a href="load-bitmap.html">Loading Large Bitmaps Efficiently</a></b></dt>
    <dd>This lesson walks you through decoding large bitmaps without exceeding the per application
    memory limit.</dd>

  <dt><b><a href="process-bitmap.html">Processing Bitmaps Off the UI Thread</a></b></dt>
    <dd>Bitmap processing (resizing, downloading from a remote source, etc.) should never take place
    on the main UI thread. This lesson walks you through processing bitmaps in a background thread
    using {@link android.os.AsyncTask} and explains how to handle concurrency issues.</dd>

  <dt><b><a href="cache-bitmap.html">Caching Bitmaps</a></b></dt>
    <dd>This lesson walks you through using a memory and disk bitmap cache to improve the
    responsiveness and fluidity of your UI when loading multiple bitmaps.</dd>

  <dt><b><a href="manage-memory.html">Managing Bitmap Memory</a></b></dt>
    <dd>This lesson explains how to manage bitmap memory to maximize your app's performance.</dd>

  <dt><b><a href="display-bitmap.html">Displaying Bitmaps in Your UI</a></b></dt>
    <dd>This lesson brings everything together, showing you how to load multiple bitmaps into
    components like {@link android.support.v4.view.ViewPager} and {@link android.widget.GridView}
    using a background thread and bitmap cache.</dd>

</dl>
