Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 859f4556 authored by Dirk Dougherty's avatar Dirk Dougherty Committed by Android (Google) Code Review
Browse files

Merge "Add generated html docs for SampleSyncAdapter and CubeLiveWallpaper....

Merge "Add generated html docs for SampleSyncAdapter and CubeLiveWallpaper. Add article for live wallpaper." into eclair
parents e88192b9 d323b4c3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -355,6 +355,8 @@ framework_docs_LOCAL_ADDITIONAL_JAVA_DIR:=$(call intermediates-dir-for,JAVA_LIBR

sample_dir := development/samples

# the list here should match the list of samples included in the sdk samples package
# (see development/build/sdk.atree)
web_docs_sample_code_flags := \
		-hdf android.hasSamples 1 \
		-samplecode $(sample_dir)/ApiDemos \
@@ -365,6 +367,8 @@ web_docs_sample_code_flags := \
		            resources/samples/BusinessCard "Business Card" \
		-samplecode $(sample_dir)/ContactManager \
		            resources/samples/ContactManager "Contact Manager" \
                -samplecode $(sample_dir)/CubeLiveWallpaper \
                            resources/samples/CubeLiveWallpaper "Live Wallpaper" \
		-samplecode $(sample_dir)/Home \
		            resources/samples/Home "Home" \
		-samplecode $(sample_dir)/JetBoy \
@@ -375,6 +379,8 @@ web_docs_sample_code_flags := \
		            resources/samples/MultiResolution "Multiple Resolutions" \
		-samplecode $(sample_dir)/NotePad \
		            resources/samples/NotePad "Note Pad" \
                -samplecode $(sample_dir)/SampleSyncAdapter \
                            resources/samples/SampleSyncAdapter "Sample Sync Adapter" \
		-samplecode $(sample_dir)/SearchableDictionary \
		            resources/samples/SearchableDictionary "Searchable Dictionary" \
		-samplecode $(sample_dir)/Snake \
+149 KiB
Loading image diff...
+5 −0
Original line number Diff line number Diff line
@@ -76,6 +76,11 @@ page.title=Technical Articles
  <dd>Live Folders allow users to display any source of data on their home screen without launching an application. This article discusses how to export an application's data in a format suitable for display inside of a live folder.</dd>
</dl>

<dl>
  <dt><a href="{@docRoot}resources/articles/live-wallpapers.html">Live Wallpapers</a></dt>
  <dd>Live wallpapers are richer, animated, interactive backgrounds that users can display in their home screens. Learn how to create a live wallpaper and bundle it in an application that users can install on their devices.</dd>
</dl>

<dl>
  <dt><a href="{@docRoot}resources/articles/on-screen-inputs.html">Onscreen Input Methods</a></dt>
  <dd>The Input Method Framework (IMF) allows users to take advantage of on-screen input methods, such as software keyboards. This article provides an overview of Input Method Editors (IMEs) and how applications interact with them.</dd>
+84 −0
Original line number Diff line number Diff line
page.title=Live Wallpapers
@jd:body

<p>Starting with Android 2.1 (API Level 7), users can now enjoy <em>live
wallpapers</em> &mdash; richer, animated, interactive backgrounds &mdash; on
their home screens. A live wallpaper is very similar to a normal Android
application and has access to all the facilities of the platform: SGL (2D
drawing), OpenGL (3D drawing), GPS, accelerometers, network access, etc. The
live wallpapers included on Nexus One demonstrate the use of some of these APIs
to create fun and interesting user experiences. For instance, the Grass
wallpaper uses the phone's location to compute sunrise and sunset times in order
to display the appropriate sky.</p>

<img src="images/live_wallpapers_small.png" style="align:center" />

<p>Creating your own live wallpaper is easy, especially if you have had
previous experience with <a
href="../../../reference/android/view/SurfaceView.html"><code>SurfaceView</code></a> or <a
href="../../../reference/android/graphics/Canvas.html"><code>Canvas</code></a>. 
To learn how to create a live wallpaper, you should check out the <a 
href="../samples/CubeLiveWallpaper/index.html">CubeLiveWallpaper sample code</a>.</p>

<p>In terms of implementation, a live wallpaper is very similar to a regular
Android <a href="../../../reference/android/app/Service.html">service</a>. The
only difference is the addition of a new method, <a
href="../../../reference/android/service/wallpaper/WallpaperService.
html#onCreateEngine()"><code>onCreateEngine()</code></a>, whose goal is to create a <a
href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html">
<code>WallpaperService.Engine</code></a>. The engine is responsible for
handling the lifecycle and drawing of a wallpaper. The system provides a surface
on which you can draw, just like you would with a <code>SurfaceView</code></a>.
Drawing a wallpaper can be very expensive so you should optimize your code
as much as possible to avoid using too much CPU, not only for battery life
but also to avoid slowing down the rest of the system. That is also why the
most important part of the lifecycle of a wallpaper is <a href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html#onVisibilityChanged%28boolean%29">when it becomes invisible</a>. 
When invisible, such as when the user launches an application that covers
the home screen, a wallpaper must stop all activity.</p>

<p>The engine can also implement several methods to interact with the user
or the home application. For instance, if you want your wallpaper to scroll
along when the user swipes from one home screen to another, you can use <a href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html#onOffsetsChanged%28float,%20float,%20float,%20float,%20int,%20int%29"><code>onOffsetsChanged()</code></a>.
To react to touch events, simply implement <a href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html#onTouchEvent%28android.view.MotionEvent%29"><code>onTouchEvent(MotionEvent)</code></a>.
Finally, applications can send arbitrary commands to the live wallpaper.
Currently, only the standard home application sends commands to the <a
href="../../../reference/android/service/wallpaper/WallpaperService.Engine.html#onCommand%28java.lang.String,%20int,%20int,%20int,%20android.os.Bundle,%20boolean%29"><code>onCommand()</code></a>
method of the live wallpaper:</p>

<ul>
<li><code>android.wallpaper.tap</code>: When the user taps an empty space
on the workspace. This command is interpreted by the Nexus and Water live
wallpapers to make the wallpaper react to user interaction. For instance,
if you tap an empty space on the Water live wallpaper, new ripples appear
under your finger.</li>
<li><code>android.home.drop</code>: When the user drops an icon or a widget
on the workspace. This command is also interpreted by the Nexus and Water
live wallpapers.</li>
</ul>

<p>If you are developing a live wallpaper, remember that the feature is
supported only on Android 2.1 (API level 7) and higher versions of the platform.
To ensure that your application can only be installed on devices that support
live wallpapers, remember to add the following to the application's manifest
before publishing to Android Market:</p>

<ul>
<li><code>&lt;uses-sdk android:minSdkVersion="7" /&gt;</code>, which indicates
to Android Market and the platform that your application requires Android 2.1 or
higher. For more information, see the <a href="../../../guide/appendix/api-levels.html">API
Levels</a> and the documentation for the
<a href="../../../guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
element.</li>
<li><code>&lt;uses-feature android:name="android.software.live_wallpaper" /&gt;</code>,
which tells Android Market that your application includes a live wallpaper
Android Market uses this feature as a filter, when presenting users lists of
available applications. When you declaring this feature, Android Market
displays your application only to users whose devices support live wallpapers,
while hiding it from other devices on which it would not be able to run. For
more information, see the documentation for the
<a href="../../../guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
element.</li>
</ul>

<p>Many great live wallpapers are already available on Android Market and
we can't wait to see more!</p>
+15 −6
Original line number Diff line number Diff line
@@ -83,6 +83,9 @@
        <li><a href="<?cs var:toroot ?>resources/articles/live-folders.html">
                <span class="en">Live Folders</span>
                </a></li>
        <li><a href="<?cs var:toroot ?>resources/articles/live-wallpapers.html">
                <span class="en">Live Wallpapers</span>
                </a> <span class="new">new!</span></li>
        <li><a href="<?cs var:toroot ?>resources/articles/on-screen-inputs.html">
                <span class="en">Onscreen Input Methods</span>
                </a></li>
@@ -178,28 +181,34 @@
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/BluetoothChat/index.html">
                <span class="en">Bluetooth Chat</span>
              </a> <span class="new">new!</span></li>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/BusinessCard/index.html">
                <span class="en">Business Card</span>
              </a> <span class="new">new!</span></li>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/ContactManager/index.html">
                <span class="en">Contact Manager</span>
              </a> <span class="new">new!</span></li>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/Home/index.html">
                <span class="en">Home</span>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/JetBoy/index.html">
                <span class="en">JetBoy</span>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/CubeLiveWallpaper/index.html">
                <span class="en">Live Wallpaper</span>
                </a> <span class="new">new!</span></li>
          <li><a href="<?cs var:toroot ?>resources/samples/LunarLander/index.html">
                <span class="en">Lunar Lander</span>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/MultiResolution/index.html">
                <span class="en">Multiple Resolutions</span>
              </a> <span class="new">new!</span></li>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/NotePad/index.html">
                <span class="en">Note Pad</span>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/SampleSyncAdapter/index.html">
                <span class="en">Sample Sync Adapter</span>
              </a> <span class="new">new!</span></li>
          <li><a href="<?cs var:toroot ?>resources/samples/SearchableDictionary/index.html">
                <span class="en">Searchable Dictionary</span>
              </a></li>
@@ -211,10 +220,10 @@
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/Wiktionary/index.html">
                <span class="en">Wiktionary</span>
              </a> <span class="new">new!</span></li>
              </a></li>
          <li><a href="<?cs var:toroot ?>resources/samples/WiktionarySimple/index.html">
                <span class="en">Wiktionary (Simplified)</span>
              </a> <span class="new">new!</span></li>
              </a></li>
        </ul>
      </li>
    </ul>
Loading