page.title=Creating Custom Views
page.tags="widgets","ui","layout"

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>
        </ul>

        <h2>You should also read</h2>
        <ul>
            <li><a href="{@docRoot}guide/topics/ui/custom-components.html">Custom Components</a>
            </li>
            <li><a href="{@docRoot}guide/topics/ui/ui-events.html">Input Events</a></li>
            <li><a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property
                Animation</a></li>
            <li><a href="{@docRoot}guide/topics/graphics/hardware-accel.html">Hardware
                Acceleration</a></li>
            <li><a href="{@docRoot}guide/topics/ui/accessibility/index.html">
                Accessibility</a> developer guide</li>
        </ul>
<h2>Try it out</h2>
<div class="download-box">
<a href="{@docRoot}shareables/training/CustomView.zip"
class="button">Download the sample</a>
<p class="filename">CustomView.zip</p>
</div>
    </div>
</div>

<p>
The Android framework has a large set of {@link android.view.View} classes for
interacting with the user and displaying various
types of data. But
sometimes your app has unique needs that aren’t covered by the built-in views. This class shows you
how to create your
own views that are robust and reusable.</p>

<h2>Lessons</h2>

<dl>
<dt><b><a href="create-view.html">Creating a View Class</a></b></dt>
<dd>Create a class that acts like a built-in view, with custom
    attributes and support from the <a href="http://developer.android.com/sdk/eclipse-adt.html">ADT</a> layout editor.
</dd>

<dt><b><a href="custom-drawing.html">Custom Drawing</a></b></dt>
<dd>Make your view visually distinctive using the Android graphics system.</dd>

<dt><b><a href="making-interactive.html">Making the View Interactive</a></b></dt>
<dd>Users expect a view to react smoothly and naturally to input gestures.
    This lesson discusses how to use gesture detection, physics, and animation
    to give your user interface a professional feel.
</dd>

<dt><b><a href="optimizing-view.html">Optimizing the View</a></b></dt>
<dd>No matter how beautiful your UI is, users won't love it if it
    doesn't run at a consistently high frame rate. Learn how to avoid common
    performance problems, and how to use hardware acceleration to make your
    custom drawings run faster.
</dd>

</dl>