API Demos
MM/dd/yy hmmaa
MM/dd/yy kmm
\'Custom font:\' MM/dd/yy h:mm aa
\'Custom font:\' MM/dd/yy k:mm
tab1
tab2
tab3
App/Activity/Hello World
Hello, World!
App/Activity/Dialog
Example of how you can use the
Theme.Dialog theme to make an activity that looks like a
dialog. It also has lots of text to show how text wrapping (and
corresponding window size adjustment) can happen in a dialog.
Add content
Remove content
App/Activity/Custom Dialog
Example of how you can use a
custom Theme.Dialog theme to make an activity that looks like a
customized dialog, here with an ugly frame.
App/Activity/Overscan
App/Activity/QuickContactsDemo
App/Activity/Wallpaper
App/Activity/SetWallpaper
Set Wallpaper
Randomize
App/Activity/Screen Orientation
Demonstrates the available screen
orientation modes. Often you want to set the desired mode in your manifest
instead of programmatically.
Screen Orientation
App/Activity/Picture in Picture
App/Activity/Max Aspect Ratio/1:1
App/Activity/Max Aspect Ratio/16:9
App/Activity/Max Aspect Ratio/Any
Enter picture-in-picture mode
App/Activity/Translucent
Example of how you can make an
activity have a translucent background, compositing over
whatever is behind it.
App/Activity/Translucent Blur
App/Activity/Animation
Press a button to launch an activity with a custom animation.
Fade in
Zoom in
Modern fade in
Modern zoom in
Scale up
Thumbnail zoom
No Animation
App/Activity/Save & Restore State
Demonstration of saving and restoring activity state in onSaveInstanceState() and onCreate().
This text field saves its state:
This text field does not save its state:
Initial text.
App/Activity/Soft Input Modes
Shows how different soft input modes impact
application resizing due to an input method.
Resize mode:
This is a part of the application\'s UI that
can resize to adjust for the IME.
Text editor.\n\nTap to show the IME,
which will cause this window to resize as requested.
App/Activity/Persistent State
Demonstration of persistent activity state with getPreferences(0).edit() and getPreferences(0).
App/Activity/Recreate
Demonstration recreating an activity, to have
it reconstructed with significant new changes. In this case the theme is changed.
Recreate
App/Activity/Finish Affinity
App/Activity/Receive Result
Pick a result to send, or BACK to cancel.
Corky
Violet
App/Activity/Forwarding
Press the button to go forward to the next activity. This activity will stop, so you will no longer see it when going back.
Go
Press back button and notice we don\'t see the previous activity.
App/Activity/Redirection
Press the button to start the example. The next activity will conditionally redirect to another activity to collect data from the user.
You now see the main activity running normally because the user text has been set to:
Clear and Exit
New Text
Enter the text that will be used by the main activity. Press back to cancel.
Apply
App/Activity/Presentation
This activity demonstrates how to use a
Presentation and the DisplayManager to show content on other Displays.\n
Try connecting a secondary display and watch what happens.\n
Selecting a Display will open a Presentation on it.
Show all displays
Showing photo #%1$d on display #%2$d: %3$s.
Info
Display #%1$d: %2$s
Display #%1$d Info
OK
App/Activity/Presentation with Media Router
This activity demonstrates how to
use a Presentation and the MediaRouter to automatically
show content on a secondary display when available based on the currently
selected media route.\n
Try connecting a secondary display and watch what happens.
Play on...
Now playing on main display \'%s\'.
Now playing on secondary display \'%s\'.
App/Activity/Secure Surfaces/Secure Window
This activity demonstrates how to make an activity
use a secure surface so that its contents will only be visible on secure displays.
The activity\'s window has been marked with FLAG_SECURE to make it use a secure surface.
Consequently, the contents of the activity will not appear in screenshots and will not
be mirrored to non-secure displays.\n
\n
I am a secure activity!
App/Activity/Secure Surfaces/Secure Dialog
This activity demonstrates how to make a dialog use
a secure surface so that its contents will only be visible on secure displays.
The dialog\'s window has been marked with FLAG_SECURE to make it use a secure surface.
Consequently, the contents of the dialog will not appear in screenshots and will not
be mirrored to non-secure displays.
Show secure dialog
I am a secure dialog!
App/Activity/Secure Surfaces/Secure Surface View
This activity demonstrates how to make a
SurfaceView use a secure surface so that its contents will only be visible on
secure displays.
The surface view\'s window has been made secure using setSecure(true) to make it use
a secure surface. Consequently, the contents of the surface view will not appear in
screenshots and will not be mirrored to non-secure displays.
App/Fragment/Alert Dialog
App/Fragment/Arguments
Demonstrates a fragment that takes arguments
as a Bundle at runtime (on the right) or from attributes in a layout (on the left).
From Attributes
Landscape Only
Demonstrates two embedded fragments
that are instantiated with arguments.
App/Fragment/Custom Animations
App/Fragment/Hide and Show
App/Fragment/Context Menu
Fragment populating a context
menu; long press the button to see.
Long press me
App/Fragment/Dialog
Show
App/Fragment/Dialog or Activity
Demonstrates the same fragment
being shown as a dialog and embedded inside of an activity.
Fragment embedded inside
of the activity:
App/Fragment/Layout
App/Fragment/List Array
App/Fragment/Menu
Build menus from two fragments, allowing
you to hide them to remove them..
Show fragment 1 menu
Show fragment 2 menu
App/Fragment/Nesting Tabs
App/Fragment/Retain Instance
Current progress of retained fragment;
restarts if fragment is re-created.
Restart
App/Fragment/Receive Result
App/Fragment/Stack
Push
Pop
First
Last
App/Fragment/Tabs
App/Loader/Cursor
App/Loader/Retained
App/Loader/Custom
App/Loader/Throttle
App/Activity/Menu
Open menu
Close menu
Toggle scenery
Toggle dogs
Long click for context menu
Local service has started
Local service has stopped
Sample Local Service
App/Service/Local Service Controller
This demonstrates how you can implement persistent services that
may be started and stopped as desired.
Start Service
Stop Service
App/Service/Local Service Binding
This demonstrates how you can connect with a persistent
service. Notice how it automatically starts for you, and play around with the
interaction between this and Local Service Controller.
Bind Service
Unbind Service
Connected to local service
Disconnected from local service
App/Service/Messenger Service
This demonstrates how you can communicate with
a remote service using Messenger.
Remote service has started
Remote service has stopped
Sample Remote Service
App/Service/Remote Service Controller
This demonstrates how you can implement persistent services
running in a separate process that may be started and stopped as desired.
App/Service/Remote Service Binding
This demonstrates how you can connect with a persistent
service running in another process. Use the kill button to see what happens when
the process crashes.
Kill Process
Connected to remote service
Disconnected from remote service
Unbinding due to disconnect
Failure calling remote service
App/Service/Remote Service Binding Options
Sample Service Start Arguments
App/Service/Service
Start Arguments Controller
This demonstrates how
service can be started with arguments, and run until all arguments are
processed.
Start \"One\" no redeliver
Start \"Two\" no redeliver
Start \"Three\" w/redeliver
Start failed delivery
Service created.
Service destroyed.
Job Work Service
App/Job/Job Work Service Controller
This demonstrates how
work can be enqueued and executed by a job, running work in the job until
everything is complete.
Enqueue \"One\"
Enqueue \"Two\"
Enqueue \"Three\"
JobService created.
JobService destroyed.
Service is in the foreground
Sample Foreground Service
App/Service/Foreground Service Controller
This demonstrates how you can
implement services that run in the foreground when needed.
Start Service Foreground
Start Service Foreground w/Wakelock
Start Service Background
Start Service Background w/Wakelock
Start Service Foreground 2
Start Service Foreground 2 Via Alarm
App/Service/Isolated Service Controller
This demonstrates the use of android:isolatedProcess
with services. There are two services, which can be independently controlled; they will
each run in their own isolated process
Start Service 1
Stop Service 1
Bind Service 1
Start Service 2
Stop Service 2
Bind Service 2
Isolated service 1 has started
Isolated service 1 has stopped
Sample Isolated Service 1
The one-shot alarm has gone off
The repeating alarm has gone off
App/Alarm/Alarm Controller
This demonstrates how to schedule and handle
one-shot and repeating alarms.
One Shot Alarm
One Shot While-Idle Alarm
Start Repeating Alarm
Stop Repeating Alarm
One-shot alarm will go off in 30 seconds based on
the real time clock. Try changing the current time before then!
Repeating alarm will go off in 15 seconds and
every 15 seconds after based on the elapsed realtime clock
Repeating alarm has been unscheduled
The alarm service has started running
The alarm service has finished running
Sample Alarm Service
App/Alarm/Alarm Service
This demonstrates how to schedule a repeating
alarm that will initiate a long-lived operation through a service.
Start Alarm Service
Stop Alarm Service
Alarm service will run now, and then every
30 seconds for 15 seconds
Alarm service has been unscheduled
App/Instrumentation/Local Sample
This demonstrates an Instrumentation that runs against
one of our own classes. Note that this activity will be killed as
a side-effect of starting instrumentation on its own application.
App/Instrumentation/Contacts Filter
This demonstrates an Instrumentation package that
launches the contacts list and simulates user events to filter it.
App/Activity/PickImage
Pick Image
Short notification
This is a long notification. See, you might need a second more to read it.
Sample Notification
This service will update a status bar notification
every 5 seconds for a minute
This shows how you can use a notification to
send a broadcast and allow you to start a service even if your app is in the
background.
Post notification
Notification to background
App/Activity/Custom Title
Left is best
Right is always right
Change Left
Change Right
App/Activity/Reorder Activities
This is the first of a sequence of four Activities. A button on the fourth will use the Intent.FLAG_ACTIVITY_REORDER_TO_FRONT flag to bring the second of the activities to the front of the history stack. After that, proceeding back through the history should begin with the newly-frontmost second reorder activity, then the fourth, the third, and finally the first.
Go to the second
This is the second in a sequence of four Activities.
Go to the third
This is the third of a sequence of four Activities.
Go to the fourth
This is the last in a sequence of four Activities.
Bring the second in front
App/Activity/Rotation Animation
App/Menu/Inflate from XML
Select a menu resource and press the menu key.
If you want to choose another menu resource, go back and re-run this activity.
App/Voice Recognition
Supported languages
Voice Search in Settings
App/Text-To-Speech
Again
ApiDemos has been updated!
Content/Clipboard/Data Types
Copy Text
Copy Intent
Copy URI
Clip Type
Content/Storage/External Storage
Create
Delete
Content/Resources/Styled Text
Initialized from a resource:
Plain, bold, italic, bold-italic
Assigned programmatically:
Content/Undo
TextView with the default Control-Z undo behavior.
SetText
Append
Insert
TextView with undo disabled.
TextView with a length limit InputFilter.
Credit card input field with a TextWatcher.
Content/Resources/Layout Reference
Shows how to write layout
resource references, so that you can define multiple different configurations of
a layout resource that refer to one actual XML definition.
Default layout
Tablet layout
Content/Resources/Width and Height
The layouts below use -wNNNdp and
-hNNNdp to select between different versions based on the size of the screen.
Content/Resources/Smallest Width
The layouts below use -swNNNdp
to select between different versions based on the size of the screen.
Content/Assets/Read Asset
Content/Resources/Themes
Content/Resources/Resources
Content/Provider/Pick Contact
Invoke Contacts to pick various kinds of
contact data. None of these require that the caller hold the
READ_CONTACTS permission.
Pick a Contact
Pick a Person
Pick a Phone
Pick an Address
Content/Provider/Share Content
Share private data of the app by granting access
to a specific URI in its content provider.
Share Image
Content/Provider/Changed Contacts
Content/Provider/Media Content Observer
Content/Packages/Install Apk
Content/Packages/Install Apk using Session API
Send IR
Get Carrier Frequencies
Content/Storage/Documents
App/Activity/Intents
Example of launching various Intents.
Get Music
Get Image
Get Stream
App/Activity/Intent Activity Flags
Example of the use of various intent activity flags.
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_CLEAR_TASK (PI)
Short notification.
Long notification.
Short top.
Short bottom.
Short center.
Short left.
Short right.
Custom Notification:
With a Button
Icons only
Icons and marquee
Use remote views in balloon
Use default values where applicable
:-)
:-|
:-(
I am happy
I am ok
I am sad
Clear notification
Mood ring
Sound
Vibrate
All
App/Alert Dialogs
OK Cancel dialog with a message
OK Cancel dialog with traditional theme
OK Cancel dialog with Holo Light theme
OK Cancel dialog with DeviceDefault Light theme
OK Cancel dialog with DeviceDefault theme
OK Cancel dialog with a long message
OK Cancel dialog with ultra long message
List dialog
Single choice list
Repeat alarm
Send Call to VoiceMail
Progress bar dialog
Progress spinner dialog
Text Entry dialog
Name:
Password:
Lorem ipsum dolor sit aie consectetur adipiscing\nPlloaso mako nuto
siwuf cakso dodtos anr koop.
Header title
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
Plloaso mako nuto siwuf cakso dodtos anr koop a
cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel
ba mada su otrenzr.\n\nSwipontgwook proudgs hus yag su ba dagarmidad.
Plasa maku noga wipont trenzsa schengos ent kaap zux comy.\n\nWipont trenz
kipg naar mixent phona. Cak pwico siructiun
ruous nust apoply tyu cak Uhex sisulutiun munityuw uw dseg\n\n
OK
Hide
Something
Cancel
34%
145/305 KB
Header title
List dialog
Last most often
Middle most often
First most often
Last least often
Middle least often
First least often
Item 1
Item 2
Item 3
Browser visibility
Refresh
Bookmark
Email visibility
Reply
Forward
Jump
Dive
App/Search/Invoke Search
This activity shows a few different ways to invoke search, and inserts context-specific data for use by the search activity.
Ways to invoke search
onSearchRequested()
Optional search parameters
"Prefill query: "
"App Data: "
App/Search/Query Search Results
This activity accepts query strings via the ACTION_SEARCH intent. In a full implementation, you would use the query string to select results from your data source, and present a list of those results to the user.
"Query String: "
"Query App Data: "
"Activity Method: "
Search Demo
Search Demo Hint
App/Launcher Shortcuts
ApiDemos
Sample
This activity creates shortcuts for the launcher (home screen), and receives intents from those shortcuts. To try it, return to the launcher and long-press to create a shortcut.
Intent:
App/Device Admin
Sample Device Admin
Sample code for writing
a DeviceAdmin class. This implementation provides a UI (in ApiDemos)
for you to directly control what the DeviceAdmin does with the
system.
Dummy Device Admin
Dummy device admin
General
Password quality
Password expiration
Lock screen / Wipe
Encryption
Enable admin
Device capabilities
Disable all device cameras
Disable keyguard widgets
Disable keyguard secure camera
Disable keyguard notifications
Disable keyguard unredacted notifications
Disable keyguard Trust Agents
Disable keyguard Fingerprint
Disable keyguard Remote Input
Keyguard widgets disabled
Keyguard widgets enabled
Keyguard secure camera disabled
Keyguard secure camera enabled
Keyguard notifications disabled
Keyguard notifications enabled
Keyguard unredacted notifications disabled
Keyguard unredacted notifications enabled
Keyguard Trust Agents disabled
Keyguard Trust Agents enabled
Keyguard Fingerprint disabled
Keyguard Fingerprint enabled
Keyguard Remote Input disabled
Keyguard Remote Input enabled
Device cameras disabled
Device cameras enabled
Password controls
Set password (user)
Set password (via API)
Set screen lock password to
Password quality
Password quality
Minimum length
Minimum letters
Minimum numeric
Minimum lower case
Minimum upper case
Minimum symbols
Minimum non-letter
Password history / Expiration
Password history depth
Password expiration timeout (minutes)
Password expiration status
Lock screen / Wipe
Max time to screen lock (minutes)
Max password failures for local wipe
Lock screen now
Wipe data
Wipe internal data, like a factory reset
Wipe all data
Wipe internal data and external storage
Encryption
Require encryption
Activate encryption
Trust Agent Features
Enabled Component Name
Enabled Features (comma-separated)
Current password meets policy requirements
Current password does not meet policy requirements
You can\'t reset my password, you are a monkey!
You can\'t lock my screen, you are a monkey!
You can\'t start encryption, you are a monkey!
You can\'t wipe my data, you are a monkey!
I admit defeat
You have just reset your screen lock password to \"%1$s\""
Don\'t forget it
Additional text explaining why this needs to be added.
Local=%1$s / Global=%2$s
Device encryption status=%1$s
%1$sd %2$sh %3$sm
Bad value \"%1$s\""
This will erase all of your data. Are you sure?
Yes
No
This is not a test. This WILL erase all of your data!
Are you really absolutely sure?
This is not a test. This WILL erase all of your data,
including external storage! Are you really absolutely sure?
BOOM!
Oops, run away!
Encryption is not supported on this device.
OK
unknown
unsupported
inactive
activating
active
None
Password expired %1$s ago
Password will expire %1$s from now
Sample Device Admin: %1$s
enabled
disabled
pw changed
pw failed
pw succeeded
This is an optional message to warn the user about disabling.
This activity demonstrates the voice recognition APIs.
Speak!
Results:
App/Action Bar/Action Bar Mechanics
App/Action Bar/Action Bar Usage
App/Action Bar/Action Bar Tabs
App/Action Bar/Action Provider/Settings Action Provider
App/Action Bar/Action Provider/Share Action Provider
Handling in onOptionsItemSelected avoided
Search
Add
Edit
Share
Sort
Alphabetically
By size
Share with...
Settings
App/Action Bar/Display Options
DISPLAY_HOME_AS_UP
DISPLAY_SHOW_HOME
DISPLAY_USE_LOGO
DISPLAY_SHOW_TITLE
DISPLAY_SHOW_CUSTOM
Navigation
Cycle Custom View Gravity
Toggle Visibility
Toggle System UI
Custom View!
Menu Item
Add new tab
Remove last tab
Toggle tab mode
Remove all tabs
App/Action Bar/Action Bar Navigation
Demonstrates various ways to navigate in
applications involving the action bar. This activity has been launched as the
root of the app\'s task.
New in-task activity
New document
App Nav Child
This is a sub-activity launched by the
application. It may be in either the app\'s main task or another task. Press
up on the action bar to navigate up in the app\'s hierarchy, regardless of where
this activity appears.
App/Print/Print Bitmap
App/Print/Print HTML from screen
App/Print/Print HTML off screen
App/Print/Print Custom Layout
Print
From the overflow menu you can print some
off screen content.
Android logo
Hide Me!
Density: Unknown Screen
Device has only one camera!
Switch Camera
Draggable Card
Enable Tilt
Enable Shading
Select Shape
Play Video from Local File
Play Streaming Video
Play Audio from Local File
Play Audio from Resources
Toggle screen sharing
Significant Motion Sensor Not Detected
Significant Motion Sensor Detected
Significant Motion Sensor Enabled
Significant Motion Sensor Auto Disabled
Vertical
Horizontal
Top
Middle
Bottom
Left
Center
Right
From:
To:
Snack
"You have selected: "
(none)
Quit
Ctrl-Q
Quit
Ctrl-Q
Tracking on
Tracking off
from touch
Enabled
Rating:
Search
Add
Edit
Share
Make a Popup!
This activity demonstrates a view that detects when it is potentially obscured
by other windows.
Click me first:
Pop up a toast that will overlay and obscure this window in a poor attempt to fool
you into clicking the big red buttons. Don\'t do it!
Unfiltered demo:
This button does no filtering. This button will still work as usual while the
toast is visible and is spoofing the view. Careful!
Built-in filtering demo:
This button uses the built-in secure touch filtering provided by the framework
using the android:filterTouchesWhenObscured attribute. This button will be inoperable
while the toast is visible.
Custom filtering demo:
This button filters touches using a touch listener to examine the MotionEvent flags
and warns the user. This button will display a message if touched while the
toast is visible.
Pop toast
Don\'t click! It\'ll cost you!
Oh no!
Oops...
Saved!
Careful! There appears to be another window partly obscuring this window...
Something unutterably HORRIBLE might have happened.
Phew!
A toast! A toast!
Totally safe, trust me...
Clicky?
Think of the penguins!
This activity demonstrates splitting touch events across multiple views
within a view group. Here we have two ListViews within a LinearLayout
that has the attribute android:splitMotionEvents set to "true".
Try scrolling both lists simultaneously using multiple fingers.
Do you have any %1$s?\n%2$s
Find something
Cheese hunt
Expand
Iconify
Longpress on a dot to start a drag, then drop over another dot. The destination
dot will append the drag\'s textual conversion to the EditText.
This activity demonstrates how to process input events received from
game controllers. Please connect your game controller now and try
moving the joysticks or pressing buttons. If it helps, try to imagine
that you are a lone space cowboy in hot pursuit of the aliens who kidnapped
your favorite llama on their way back to Andromeda...
Input Device
Axes
Keys and Buttons
Name
Pressed
Released
This activity demonstrates how to handle hover events with View.onHoverEvent,
ViewGroup.onInterceptHoverEvent, and View.setOnHoverListener.
Make container intercept hover events
Try using a mouse or touch pad to hover over views within this activity.
Entered the container at (%1$f,%2$f).
Moved within the container at (%1$f,%2$f).
Exited the container at (%1$f,%2$f). The pointer may be inside the bounds of a child instead.
Try hovering over the button.
Intercepted hover event instead of sending it to the button. Om nom nom!
Hover Here
The following demo is meaningful only with mouse. This does not have any effects on the touch screens.
arrow
context menu
hand
help
wait
cell
crosshair
text (I-beam)
vertical text
alias
copy
no drop
all scroll
horizontal double arrow
vertical double arrow
top right diagonal double arrow
top left diagonal double arrow
zoom in
zoom out
grab
grabbing
none (invisible)
Custom (defined in resource file)
Custom (resource loaded in code)
Custom (static bitmap created in code)
Custom (system icon picked in code)
Custom (dynamic image created in code)
Parent view may have its own tooltip
Long press or hover on widgets to see tooltips
Set in code
Set in resource
This tooltip is set in resource
Long tooltip
An overly long tooltip will be truncated (3 lines max). An overly long tooltip will be truncated (3 lines max). An overly long tooltip will be truncated (3 lines max). An overly long tooltip will be truncated (3 lines max)
Near the edge
A tooltip always fits inside the app window
Above placement
When there is not enough room below, the tooltip goes above
Wide widget
Wide widget gets a tooltip horizontally aligned to the pointer position
Tall\nwidget
Tall widget gets a tooltip vertically aligned to the pointer position
Large widget
Tall and wide widget gets a tooltip aligned to the pointer position
Use a better username and password, please.
Please enter your password:
Freedom
is nothing else but
a chance to be better.
— Albert Camus
Select an animation:
Interpolators
Type in the text field for auto-completion.
Country:
Give me Focus
Country:
Give me Focus
Scroll
Down
To
See
Auto
Complete
Text
View
Button
Country:
Type in the text field for auto-completion.
Name:
You must have contacts in your address book. Typing * will show all of your contacts.
Type in the text field for auto-completion.
Typing * will show all of your contacts.
Name:
To:
To
Subject:
Type in the text field for auto-completion by words.
Country:
Give me Focus
Label:
Button
Bigger
Label:
Button
Bigger
Label:
Button
Bigger
This example shows that baseline alignment has no effect when the layout gravity is set to center_vertical.
Label:
Button
Bigger
Label Again
Label Me
This is a\nmulti-line field.
Baseline Aligned
Big and bold
Slim and slick.
label
Save
Checkbox 1
Checkbox 2
RadioButton 1
RadioButton 2
Star
Buttons
Button
Button.Borderless
Button.Colored
Button.Borderless.Colored
Compound buttons
Spinners
Spinner
Spinner.Underlined
Switch
Seek bars
SeekBar
SeekBar.Discrete
Text fields
Text appearances
Service not running
placeholder
left
jump over me from L to R
right
left
right
top
bottom
1
2
3
4
5
Type here:
Ok
Cancel
Login
Bad Login
Clear Credentials
Username:
Name:
Last Name:
Phone:
Address:
This is the top view.
This is the middle view. It has more text in it than either the top view or the bottom view.
This is the bottom view.
This is the top view.
This is the middle view. It has more text in it than either the top view or the bottom view.
This is the bottom view.
This is the top view.
This is the middle view. It has more text in it than either the top view or the bottom view.
This is the bottom view.
Type Here:
Cancel
OK
One
Two
This is the third one
Four
Not much text
A lot more text than any of the other columns. This column should set the height of the linear layout.
wrap_content
A
B
C
Button
text1: Various kinds
of data that will be auto-linked. In
this text are some things that are actionable. For instance,
you can click on http://www.google.com and it will launch the
web browser. You can click on google.com too. If you
click on (415) 555-1212 it should dial the phone. Or just write
foobar@example.com for an e-mail link. If you have a URI like
http://www.example.com/lala/foobar@example.com you should get the
full link not the e-mail address. Or you can put a location
like 1600 Amphitheatre Parkway, Mountain View, CA 94043. To summarize:
https://www.google.com, or 650-253-0000, somebody@example.com,
or 9606 North MoPac Expressway, Suite 400, Austin, TX 78759.
text2: Explicit links using <a> markup.
This has markup for a link specified
via an <a> tag. Use a \"tel:\" URL
to dial a phone number.
New photo
Clear photos
No photos
+
-
Default progress:
Secondary progress:
Show Progress
Show Indeterminate
Show Indeterminate No Title
Toggle Indeterminate
Breakfast
Lunch
Dinner
All of them
You have selected: (none)
Clear
Press the button to get an activity result, which will be displayed here:
Get Result
Top
Bottom
center_vertical
Type here:
Ok
Cancel
Change the default rotation animation from rotating to fade or jumpcut.
Only works if FLAG_FULLSCREEN is set and there are no dialogs up.
Try rotating with and without the Power Off dialog visible.
FULLSCREEN
Rotation Animation:
ROTATE
XFADE
JUMPCUT
SEAMLESS
Text View 1
Button 1
Text View 2
Button 2
Text View 3
Button 3
Text View 4
Button 4
Text View 5
Button 5
Text View 6
Button 6
Text View 1
Button 1
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet.
The Android platform is a software stack for mobile devices including an
operating system, middleware and key applications. Developers can create
applications for the platform using the Android SDK. Applications are written
using the Java programming language and run on Dalvik, a custom virtual
machine designed for embedded use which runs on top of a Linux kernel.
If you want to know how to develop applications for Android, you\'re in the
right place. This site provides a variety of documentation that will help you
learn about Android and develop mobile applications for the platform.
An early look at the the Android SDK is also available. It includes sample
projects with source code, development tools, an emulator, and of course all
the libraries you\'ll need to build an Android application. What would it take
to build a better mobile phone?
Color:
Planet:
Choose a color
Choose a planet
*
***
Open\u2026
Ctrl-O
Save As\u2026
(Save Document)
Quit Application
Ctrl-Shift-Q
~/path/to/file/to/open
~/.profile
Open
Save
Save All
*
***
Open\u2026
Ctrl-O
Save As\u2026
(Save Document)
Too Long
Quit Application
Ctrl-Shift-Q
Open\u2026
Ctrl-O
Save As\u2026
Ctrl-Shift-S
Open\u2026
Ctrl-O
Save\u2026
Ctrl-S
Save As\u2026
Ctrl-Shift-S
Import\u2026
Export\u2026
Ctrl-E
Quit\u2026
X
Open\u2026
Ctrl-O
Save\u2026
Ctrl-S
Save As\u2026
Ctrl-Shift-S
Import\u2026
Export\u2026
Ctrl-E
Quit\u2026
X
Open\u2026
Ctrl-O
Save\u2026
Ctrl-S
Save As\u2026
Ctrl-Shift-S
Import\u2026
Export\u2026
Ctrl-E
Toggle Checkmarks
Toggle Shortcuts
X
Open\u2026
Ctrl-O
Save\u2026
Ctrl-S
Save As\u2026
Ctrl-Shift-S
Import\u2026
Export\u2026
Ctrl-E
Toggle Stretch
Open\u2026
Ctrl-O
Save\u2026
Ctrl-S
Save As\u2026
Ctrl-Shift-S
Save All And Do A Lot Of Stuff Just To Be Too Long For This Screen Because It Is A Test After All
Ctrl-E
Import\u2026
Export\u2026
Ctrl-E
Toggle Shrink
User
Password
Cancel
Login
A
BB
CCCC
D
E
F
G
H
View A
View B
View C
Vis
Invis
Gone
this is the text of a previous message.\nkthx. meet u for dinner. cul8r
This is the text of the posted notification.
Did you notice that the status bar icon disappeared?
New text message: %0$s
Do nothing
Add
Show Long Notification
Show Short Notification
This use the default marquee animation limit of 3
This will run the marquee animation once
This will run the marquee animation forever
Next
change the time (12 hour)
change the time (24 hour)
change the date
Normal
Right
Small
S R
S L
S U
S D
Toggle
Sample action
Start
Stop
Reset
Set format string
Clear format string
Initial format: %s
Play
Pause
Vibrate
Large image at normal size
Large image scaled to at most 50x50
Large image scaled to at most 70x70 with padding
Large image scaled to exactly 70x70 with padding
Small image at normal size
Small image scaled to at most 50x50
Small image scaled to at most 70x70 with padding
Small image scaled to exactly 70x70 with padding
textColorPrimary
textColorSecondary
textColorTertiary
listSeparatorTextViewStyle
This text will be shown before the date in our example widget.
Oh hai
%1$s: %2$s
WARNING: this demo can send actual text messages (one at a time), so be sure to
test with the Android emulator or have a text messaging plan with your carrier.
Enable SMS broadcast receiver
Recipient #
Message Body
Send
Message from "%1$s": %2$s
Reply
Dismiss
Share
Accessibility/Accessibility Service
ClockBack
1. Enable TalkBack (Settings -> Accessibility -> TalkBack).
\n\n2. Enable Explore-by-Touch (Settings -> Accessibility -> Explore by Touch).
\n\n3. Touch explore the Clock application and the home screen.
\n\n4. Go to the Clock application and change the time of an alarm.
\n\n5. Enable ClockBack (Settings -> Accessibility -> ClockBack).
\n\n6. Go to the Clock application and change an alarm.
\n\n7. Set the ringer to vibration mode and change an alarm.
\n\n8. Set the ringer to muted mode and change an alarm.
Ringer audible
Ringer vibrate
Ringer silent
Screen on. Volume %1$s percent.
Screen off. Volume %1$s percent.
Accessibility/Accessibility Node Querying
QueryBack
Task App Accessibility Service
1. Enable QueryBack (Settings -> Accessibility -> QueryBack).
\n\n2. Enable Explore-by-Touch (Settings -> Accessibility -> Explore by Touch).
\n\n3. Touch explore the list.
Accessibility/Custom View
1. Enable TalkBack (Settings -> Accessibility -> TalkBack).
\n\n2. Enable Explore-by-Touch (Settings -> Accessibility -> Explore by Touch).
\n\n3. Touch explore/poke the buttons.
On
Off
Magnification
Allows the volume keys to control display magnification
Task
Task %1$s %2$s
is complete
is not complete
List of entries:
Key operations
Plaintext:
Ciphertext:
Sign
Verify
Delete
Generating
Entry alias:
Generate
Must supply an alias
Last received message
Addresses
Subject
Text
Send
Sending
Sent OK
Downloaded
Failed
Downloading
Enable MMS broadcast receiver
Content/Process Text Intent
Received text selection
Finish
Replace
No text received.
Try selecting some text in another app and find this app\'s name in the list of options for its selection menu.
Select text to process
Select a piece of text from this box to trigger the text selection action mode. In there, you will find \"ApiDemos\". That is because this app declares it can handle text processing intents. Try selecting that action to send the selected text to that activity and retrieve processed text back.