152
Android AndroidWallet.blogspot.in For More Code & Data go to:-

Android complete basic Guide

Embed Size (px)

Citation preview

Page 1: Android complete basic Guide

Android AndroidWallet.blogspot.in

For More Code & Data go to:-

Page 2: Android complete basic Guide

Getting Started with Android

Target-1 A little background of Mobile application development Introduction to Android Android Architecture Android and Linux Kernel Android Software Stack Android Activities and Libraries Dalvik Virtual Machine Android Development Environment Android emulator Hello world Program

AndroidWallet.blogspot.in

Page 3: Android complete basic Guide

Mobile application development

The previous Mobile generations 1979–1992 Mobiles Phones have Embedded System to control operation. 1993 The first Smartphone, the IBM Simon, has a touch screen, email and PDA features. From 1995 to 2005 revolution came in mobile platforms. Used proprietary low and middle wares Focused mainly on Communications Some phones had some additional features like Music Players, Camera, Locations etc. There was no much focus on the other uses of the mobile platform No focus on developers No rich framework

AndroidWallet.blogspot.in

Page 4: Android complete basic Guide

Mobile application development

Mobile generations…. Symbian was created to provide developers a wider target audience Enabling the developers to build rich applications and leverage the hardware better But coding has to be done in C/C++ using the proprietary APIs Portability became the key issue

AndroidWallet.blogspot.in

Page 5: Android complete basic Guide

Mobile application development

Phone Characteristics (1995-2005) Low memory Low processing power Different types of displays like Text, LCD, etc., Response to communication was the most important

task. Different keyboard layouts Security of Application and Data Location based approach Support for Java and J2ME

AndroidWallet.blogspot.in

Page 6: Android complete basic Guide

Mobile application development

Support for Java through J2ME Midlets running on Light Weight VM Supported only a subset of the actual framework J2ME supported only simple apps Supported portability Lesser access to the underlying hardware Focused more on game development Has access to

• Smaller Screens • Simple numerical keypads • Limited access to HTTP

AndroidWallet.blogspot.in

Page 7: Android complete basic Guide

Mobile application development

New Revolution in Mobile field started. Touch based mobile came.

• Windows Mobile

Email based mobile introduced by Blackberry.

AndroidWallet.blogspot.in

Page 8: Android complete basic Guide

Mobile application development

Phone started with multi-functionality. Called “Smart Phone”. Gestures based UI (multi touch) iPhone was introduced and provided rich framework

•Used objective C for development Apps were developed and pushed to the stores

•Either free and commercial ones.

AndroidWallet.blogspot.in

Page 9: Android complete basic Guide

Smart Phones: Platform 2008 [Android]

Platform for Smart Phones Developed by Android Inc. later taken over by Google. Andy Rubin is the father of Android. It is a platform based on Linux kernel. Its an open source. Has a lean, powerful middleware based on DV machine. Optimized, easy to deliver application framework using java. Has a rich market place. Libraries written in C includes Surface manager, Open Core media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, Web-Kit layout engine, SGL graphics engine, SSl, Bionic libc.

AndroidWallet.blogspot.in

Page 10: Android complete basic Guide

Android: How does it help?

For Device Manufacturers Focus on hardware and user interface innovations. Get basic applications automatically Get ready for app markets Get access to fast changing innovation in mobile software Platforms

• Desktop class internet browsing • Location based applications • Multimedia support and Multitasking

They can still have unique locks

AndroidWallet.blogspot.in

Page 11: Android complete basic Guide

Android Architecture

For application / software owners Develop software / application for new mobiles New sales and distribution channel Track sales / revenue Feature richness More complex application can be made eisaly New areas to explore

AndroidWallet.blogspot.in

Page 12: Android complete basic Guide

Architecture The Kernel Layer

For Application & System Developers Create new applications quickly using Java Reuse other applications in a new unique manner Hides several complexities of development, debugging, testing, deploying apps on mobile devices

System Developers New structure upon kernel Can build additional SDK (Add ons) Open code base

AndroidWallet.blogspot.in

Page 13: Android complete basic Guide

Android: How does it help?

For Google / Android Play in the fast growing mobile industry Create new advertising space Diversify into consumer electronics

AndroidWallet.blogspot.in

Page 14: Android complete basic Guide

Android: open Handset Alliance(OHA)

A business alliance consisting of 47 companies to develop open standards for mobile devices.

AndroidWallet.blogspot.in

Page 15: Android complete basic Guide

Android: open Handset Alliance(OHA)

different versions as of June 3, 2013.

AndroidWallet.blogspot.in

Page 16: Android complete basic Guide

Android: open Handset Alliance(OHA)

Choosing an API level 1-Current Distribution 2-Choosing a lower API level may support more devices but gain less functionality for your app.

Android 1.5 - 2.3 (API levels 3-10) - Android made specifically for smartphones. Android 3.0 - 3.2 (API levels 11-13) - Honeycomb, Android made for tablets. Android 4 (API levels 14-) - Ice Cream Sandwich - Current generation,for both phone and tablets.

AndroidWallet.blogspot.in

Page 17: Android complete basic Guide

Android Architecture

Basics A Software stack for mobile devices developed and managed by OHA. A free Software under Apache License.

AndroidWallet.blogspot.in

Page 18: Android complete basic Guide

Android Architecture The Software Stack

ers De

Page 19: Android complete basic Guide

Architecture The Kernel Layer

The Kernel Layer Relying on Linux Kernel 2.6 for core system services

• Memory and Process Management • Network Stack • Driver Model • Security

Providing an abstraction layer between the H/W and the rest of the S/W stack

AndroidWallet.blogspot.in

Page 20: Android complete basic Guide

Architecture The Kernel Layer

The Kernel Enhancements Alarm Ashmem Binder Power Management Low Memory Killer Kernel Debugger Logger

AndroidWallet.blogspot.in

Page 21: Android complete basic Guide

Architecture The Kernel Layer

Binder Driver to facilitate IPC between applications and

services Problems of Linux IPC

• Applications and Services may run in separate processes but must communicate and share data

• IPC can introduce significant processing overhead and security hole

Properties of Binder • High performance through shared memory • Per-process thread pool for processing requests • Reference counting and mapping of object

references across processes • Synchronous calls between processes

AndroidWallet.blogspot.in

Page 22: Android complete basic Guide

Architecture The Kernel Layer

Binder in Action

A pool of threads is associated to each service application to process incoming IPC.

Binder performs mapping of object between two processes.

Binder uses an object reference as an address in a process’s memory space.

AndroidWallet.blogspot.in

Page 23: Android complete basic Guide

Architecture The Kernel Layer

Power Management Problem

• Mobile devices depend on battery power and batteries have limited capacity.

Properties of Power Management • PM is built on top of standard Linux Power

Management. • PM supports more aggressive power management

policy. • Components make requests to keep the power on

through “Wake Locks”. • PM supports several different types of wake “Wake

Locks”. AndroidWallet.blogspot.in

Page 24: Android complete basic Guide

Architecture The Kernel Layer

Power Management in action (conti..) Four types of WAKELOCKS present in power manager.

• PARTIAL_WAKE_lOCK • SCREEN_DIM_WAKE_lOCK • SCREEN_BRIGHT_WAKE_LOCK • FULL_WAKE_LOCK

AndroidWallet.blogspot.in

Page 25: Android complete basic Guide

Architecture The Kernel Layer

Power Management in action

If there are no active wake locks, CPU will be turned off.

If there are no partial wake locks, screen and keyboard will be turned off

AndroidWallet.blogspot.in

Page 26: Android complete basic Guide

Architecture The Libraries

Running on top of the Linux kernel, android provides various C/C++ core libraries that include • Media library (audio & Video) • Surface manager for display • Graphics libraries that include SGL and OpenGL • SQLite for native database support • SSL and Web-Kit for web browsing and internet

security

AndroidWallet.blogspot.in

Page 27: Android complete basic Guide

Architecture The Android Runtime

Libraries & VM Android runtime is the engine that powers the android. Includes the Dalvik Virtual Machine and Core Libraries

app. Android app development is done in Java, but Dalvik VM is

not a JVM. Java .class files don’t run in android, instead they have to

be converted into .dex files

AndroidWallet.blogspot.in

Page 28: Android complete basic Guide

Architecture The Android App Framework

Provides the classes used to create android application. Also provides generic access to hardware resources

manages user interface and application resources. Package Manager manages the installation of the

application

AndroidWallet.blogspot.in

Page 29: Android complete basic Guide

Architecture The Application Layer

All native and third party applications (including the developers’ apps.

The application layer runs within the Android Runtime using the classes and services made available from the application framework.

Some of the built-in application: Dialer, Messaging, Contacts, Camera, Maps etc.

Launcher looks for the activity marked with category.LAUNCHER and starts the activity.

AndroidWallet.blogspot.in

Page 30: Android complete basic Guide

Application Dependency

Android Library vs. Jar Library

AndroidWallet.blogspot.in

Page 31: Android complete basic Guide

Application Dependency

Dalvik Virtual Machine Since the development language of Android application is

Java. Need a Java virtual machine for running application. Compiles java code to Dalvik Executable(dex format). It is a register based virtual machine for efficient execution,

not stack based in traditional java.

AndroidWallet.blogspot.in

Page 32: Android complete basic Guide

Android: Development Kit

Android offers two development kits SDK (Software Development Kit)

• Used for App development in Java • Can be used / developed in Mac, Windows XP or Linux

NDK (Native Development Kit) • For native code development using C/C++ • Needs Linux or Linux shell (Cygwin)

AndroidWallet.blogspot.in

Page 33: Android complete basic Guide

Types of Application Artifacts

AndroidWallet.blogspot.in

Page 34: Android complete basic Guide

Types of Application Artifacts

A typical android app consists one or more activities. An activity is roughly equivalent to a Windows-form . An activity usually shows a single visual user interface(UI). Only one activity is chosen to be executed first when an

application is launched. An activity may transfer control or data to another activity

through an inter process communication protocol called intents.

AndroidWallet.blogspot.in

Page 35: Android complete basic Guide

Types of Application Artifacts

Services are special type of activity that do not have a visual user interface.

Services usually run in the background for an independent period of time.

Applications start their own services or connect to services already active.

Example…

AndroidWallet.blogspot.in

Page 36: Android complete basic Guide

Types of Application Artifacts

A Broadcast Receiver is a dedicated listener that waits for system-wide or locally transmitted messages.

Broadcast Receivers do not display a user interface. They typically register with system by the means of a filter

acting like a key. When the broadcast message matches the key the receiver is activated.

A Broadcast Receiver could respond by either executing a specific activity or use the notification mechanism to request the user’s attention.

AndroidWallet.blogspot.in

Page 37: Android complete basic Guide

Types of Application Artifacts

A Content provider is a data-centric service that makes persistent datasets available to any number of applications.

Common global datasets include: contacts, pictures, messages, audio files, emails.

The global datasets are usually stored in SQLite database. The Content Provider class offers a standard set of “database”

like methods to enable other apps to retrieve, delete, update and insert data items.

AndroidWallet.blogspot.in

Page 38: Android complete basic Guide

Activation of Components

Activity Activity Content Provider

Broadcast Receiver Service

Intent

CR

AndroidWallet.blogspot.in

Page 39: Android complete basic Guide

Android Application Flow

AndroidWallet.blogspot.in

Page 40: Android complete basic Guide

Development Environment

For Application development Windows XP / Vista / 7 or Mac or Linux Java 6.0 SDK Eclipse Helios or Indigo or Juno Eclipse ADT plugin Android SDK

AndroidWallet.blogspot.in

Page 41: Android complete basic Guide

Eclipse

Introduction Plugins for Eclipse

• Installation • ADT Plugin

features for development • Project, Classes, Manifest, Layout, XML • Build, Debug, Deploy

AndroidWallet.blogspot.in

Page 42: Android complete basic Guide

Development Process

Fundamental Process

Create a Android Project

Add code

Build

Package

Sign

Deploy

Create Virtual Device

Run in Emulator

AndroidWallet.blogspot.in

Page 43: Android complete basic Guide

Emulator

How to create? Once we have

downloaded the various platform tool, we have to create AVD.

Double click on “AVD manager” from SDK folder

Click “new ” button to create a virtual device.

Fill the text boxes as showed and click on create AVD.

AndroidWallet.blogspot.in

Page 44: Android complete basic Guide

Emulator

Functions Several things can be

simulated • Send / Receive

SMS Receive calls • Locations • Send touch events • Set virtual phone

settings like battery status, AC charging, etc

AndroidWallet.blogspot.in

Page 45: Android complete basic Guide

Question 1- Make a POC for display your name on Activity? Question 2- Make a POC for display your details like Name, Dob, Address on Activity?

AndroidWallet.blogspot.in

Page 46: Android complete basic Guide

Activity: Lifecycle

Creating or Restarting • onCreate • onRestart

Starting and Running • onStart • onRestoreInstanceState • onResume

Pause • onPause

Stop • onStop

Down • onSaveInstanceState • onDestroy

AndroidWallet.blogspot.in

Page 47: Android complete basic Guide

Activity: States

Different States of Activity Active (Foreground and fully visible) Paused (Partially Visible) Stopped (Not Visible) Removed / Killed onCreate(Bundle) saving and restoring state

AndroidWallet.blogspot.in

Page 48: Android complete basic Guide

Process: Lifecycle

Foreground Process These processes are assigned the highest level of priority. At any one time there are unlikely to be more than one or two foreground process active and these are usually the last to be terminated by the system.

•Hosts a Broadcast Receiver that is currently executing its onReceive() method.

AndroidWallet.blogspot.in

Page 49: Android complete basic Guide

Process: Lifecycle

Visible Process An activity that is visible to the user but not in the foreground, such as one sitting behind a foreground dialog) is considered extremely important and will not be killed unless that is required to keep the foreground activity running.

Service Process Processes that contain a Service that has already been started and is currently executing.

AndroidWallet.blogspot.in

Page 50: Android complete basic Guide

Process: Lifecycle

Background Process an activity that is not visible to the user and has been paused.

Empty Process Empty processes no longer contain any active applications and are held in memory ready to serve as hosts for newly launched applications. Such processes are, obviously, considered to be the lowest priority and are the first to be killed to free up resources. These are killed very quickly by the system as memory becomes low.

AndroidWallet.blogspot.in

Page 51: Android complete basic Guide

Manifest

Attributes xmlns ; the name of the namespace (android) and where the DTD for the xml parser is located

package ; the name of the java package for this application (must have at least two levels)

android:version ; the version code for this version of the app

android:versionName ; The version name (for publishing)

AndroidWallet.blogspot.in

Page 52: Android complete basic Guide

Manifest

Manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandroid" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

AndroidWallet.blogspot.in

Page 53: Android complete basic Guide

Intent

what’s an intent? Child tag of <activity> an intent is a message sent from one program to another (message dispatcher) to tell the system what to do next. Typically an intent consists of two parts; an action and the data that that action is supposed to use to do it. When you select an icon on the main page the intent is to run the app associated with that icon The tag is used to construct an android.content.IntentFilter object to handle a particular android.content.Intent

AndroidWallet.blogspot.in

Page 54: Android complete basic Guide

Intent

Fundamentally an Intent is a message That activates activity, service and broadcast receivers Launch an Activity or a Service Broadcast an Event Asking for content from CP

Activity-1 Intent

Activity-3

Activity-2

AndroidWallet.blogspot.in

Page 55: Android complete basic Guide

Intent

Types of Intent Explicit Intent Implicit Intent

Explicit intents explicitly defines the component which should be called by the Android system, by using the Java class as identifier.

Intent intent = new Intent(this, NextActivity.class); startActivity(intent);

AndroidWallet.blogspot.in

Page 56: Android complete basic Guide

Intent

Types of Intent (Cont….) Implicit intents specify the action which should be

performed and optionally data which provides data for the action. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); startActivity(intent);

AndroidWallet.blogspot.in

Page 57: Android complete basic Guide

Intent

Standard available categories android.intent.category.DEFAULT android.intent.category.LAUNCHER android.intent.category.HOME

AndroidWallet.blogspot.in

Page 58: Android complete basic Guide

Question 1- Make a POC for switching from one Activity to other Activity? Question 2- Make a POC for sending your Name, Dob from one Activity to other Activity?

AndroidWallet.blogspot.in

Page 59: Android complete basic Guide

User Interface

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 60: Android complete basic Guide

Android Widgets

Basics Widgets are little applications which can be placed on a widget host, typically the home screen or the lock screen, of your Android device. A widget runs as part of the process of its host. This requires that widgets preserve the permissions of their application.

AndroidWallet.blogspot.in

Page 61: Android complete basic Guide

Android Widgets

Toast A toast is a widget that displays some information on the screen and doesn’t steel away the input focus. A toast can be launched from any component A toast is automatically dismissed A toast is asynchronous. android.widget.Toast is the class used to display them Toast tst = Toast.makeText(context, message,Duration); tst.show();

AndroidWallet.blogspot.in

Page 62: Android complete basic Guide

Resource (res) Directory Layout

The res directory has the following layout Animation and Drawable Resources

• res/anim R.anim • res/drawable R.drawable

Color State Resources • res/color R.color

Layout Resources • res/layout R.layout

Menu Resources • res/menu R.menu

String Resources • res/values R.string, R.array

Style Resouces • res/style R.style

AndroidWallet.blogspot.in

Page 63: Android complete basic Guide

Resources The “R” class

Referring to resources from code <your.package>.R.java class gets generated whenever the project gets built.

• This class provides quick access to all resources • Layouts, widgets within the resources • Raw data that needs to be packaged • Localizable string

com.android.R class provides the shareable resources offered by the android platform R.color.red R.string.titlevalue

AndroidWallet.blogspot.in

Page 64: Android complete basic Guide

Basic of Android UI Design

Views Are the base class for all UI elements (controls or widgets) All UI controls (including the layout classes) derive from View

View Controller

Model

AndroidWallet.blogspot.in

Page 65: Android complete basic Guide

Android UI Design

Widget Toolbox Android supplies with a standard set of views to create simple interfaces Some of the widgets:

•TextView •EditText •Button •Spinner •ListView •CheckBox

AndroidWallet.blogspot.in

Page 66: Android complete basic Guide

Android UI Design

Layout Managers Layout is the architecture for the user interface in an activity. It defines the layout structure and holds all the elements that appear to the user Layout managers are extensions of view group used to position controls (widgets) for your UI Layouts can be nested allowing you to create complex UI Some of the layouts

•FrameLayout •LinearLayout •RelativeLayout •TableLayout

AndroidWallet.blogspot.in

Page 67: Android complete basic Guide

Android UI Design

Layout Managers (Conti….) Layouts can be created either using XML or programmatically (xml being the preferred way). It defines the layout structure and holds all the elements that appear to the user. Views use the constants wrap_content and fill_parentrather than exact height or width in pixels These constants are simple and more powerful ensuring that the layouts are screen size & resolution independent The wrap_content will set with minimium size required to fill the content. The fill_parent expands the view to the full size of the parent.

AndroidWallet.blogspot.in

Page 68: Android complete basic Guide

Examples of Layout

Android Layout An Android layout is a class that handles arranging the way its children appear on the screen. Anything that is a View can be a child of a layout. The standard layouts are,

• Linear • Absolute • Relative • Frame • Table

AndroidWallet.blogspot.in

Page 69: Android complete basic Guide

Examples of Layout

Absolute Layout Absolute Layout is based on the simple idea of placing each control at an absolute position. Specify the exact x and y coordinates on the screen for each control It was used rarely because it makes inflexibilities so very risk to maintain

AndroidWallet.blogspot.in

Page 70: Android complete basic Guide

Examples of Absoulate Layout <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/backbutton" android:text="Back" android:layout_x="10px" android:layout_y="5px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_x="10px" android:layout_y="110px" android:text="First Name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:layout_x="150px" android:layout_y="100px" android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_x="10px" android:layout_y="160px" android:text="Last Name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:layout_x="150px" android:layout_y="150px" android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </AbsoluteLayout>

AndroidWallet.blogspot.in

Page 71: Android complete basic Guide

Examples of Layout

Frame Layout Frame Layout is designed to display a single item at a time You can have multiple elements within a Frame Layout but each element will be positioned based on the top left of the screen. Frame Layout can become more useful when elements are hidden and displayed programmatically. You can use the attribute android:visibility in the XML to hide specific elements.

AndroidWallet.blogspot.in

Page 72: Android complete basic Guide

Examples of Frame Layout

<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:src="@drawable/icon" android:scaleType="fitCenter" android:layout_height="fill_parent" android:layout_width="fill_parent"/> <TextView android:text="Learn-Android.com" android:textSize="24sp" android:textColor="#000000" android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center"/> </FrameLayout>

AndroidWallet.blogspot.in

Page 73: Android complete basic Guide

Examples of Layout

Linear Layout Linear Layout organizes elements along a single line. You specify whether that line is vertical or horizontal using android:orientation. Here is a sample Layout XML using Linear Layout.

AndroidWallet.blogspot.in

Page 74: Android complete basic Guide

Examples of Layout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/backbutton" android:text="Back" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="First Name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="Last Name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>

AndroidWallet.blogspot.in

Page 75: Android complete basic Guide

Examples of Layout

Relative Layout Relative Layout lays out elements based on their relationships with one another, and with the parent container. This is arguably the most complicated layout, and we need several properties to actually get the layout we want.

Relative To Other Elements

• android:layout_above – Places the element above the specified element • android:layout_below – Places the element below the specified element • android:layout_toLeftOf – Places the element to the left of the specified element • android:layout_toRightOf – Places the element to the right of the specified element

AndroidWallet.blogspot.in

Page 76: Android complete basic Guide

Examples of Layout

Relative To Container These properties will layout elements relative to the parent container:

android:layout_alignParentBottom – Places the bottom of the element on the bottom of the container android:layout_alignParentLeft – Places the left of the element on the left side of the container android:layout_alignParentRight – Places the right of the element on the right side of the container android:layout_alignParentTop – Places the element at the top of the container android:layout_centerHorizontal – Centers the element horizontally within its parent container android:layout_centerInParent – Centers the element both horizontally and vertically within its container android:layout_centerVertical – Centers the element vertically within its parent container

AndroidWallet.blogspot.in

Page 77: Android complete basic Guide

Examples of Layout

Alignment With Other Elements android:layout_alignBaseline – Aligns baseline of the new element with the baseline of the specified element android:layout_alignBottom – Aligns the bottom of new element in with the bottom of the specified element android:layout_alignLeft – Aligns left edge of the new element with the left edge of the specified element android:layout_alignRight – Aligns right edge of the new element with the right edge of the specified element android:layout_alignTop – Places top of the new element in alignment with the top of the specified element

AndroidWallet.blogspot.in

Page 78: Android complete basic Guide

Examples of Relative Layout <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/backbutton" android:text="Back" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/firstName" android:text="First Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/backbutton" /> <EditText android:id="@+id/editFirstName" android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/firstName" android:layout_below="@id/backbutton"/> <EditText android:id="@+id/editLastName" android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/editFirstName" android:layout_alignLeft="@id/editFirstName"/> <TextView android:id="@+id/lastName" android:text="Last Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/editLastName" android:layout_below="@id/editFirstName" /> </RelativeLayout>

AndroidWallet.blogspot.in

Page 79: Android complete basic Guide

Examples of Layout

Table Layout Table Layout organizes content into rows and columns. The rows are defined in the layout XML, and the columns are determined automatically by Android. This is done by creating at least one column for each element. You can specify that an element should occupy more than one column using android:layout_span. This can increase the total column count as well, so if we have a row with two elements and each element has android:layout_span=”3″ then you will have at least six columns in your table.

AndroidWallet.blogspot.in

Page 80: Android complete basic Guide

Examples of Table Layout <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TableRow> <Button android:id="@+id/backbutton" android:text="Back" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow> <TextView android:text="First Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" /> <EditText android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow> <TextView android:text="Last Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" /> <EditText android:width="100px" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> </TableLayout>

AndroidWallet.blogspot.in

Page 81: Android complete basic Guide

Optimizing Layouts

Tips Inflating layout in activities is an expensive process Each additional nested layouts can have dramatic

influence on performance Some of the guidelines Avoid unnecessary nesting Avoid too many views (not more than 80 views) Avoid deep nesting (not more than 10 levels)

AndroidWallet.blogspot.in

Page 82: Android complete basic Guide

ListView

Basics Listview is a view group that creates a list of scrollable

items. These items are automatically inserted into the list using

ListAdapter. The ListAdapter is a bridge between the Listview and the

data that backs the list. The data may come from an array or a cursor or virtually

any data source. Listview can display any data that is wrapped in a

ListAdapter.

AndroidWallet.blogspot.in

Page 83: Android complete basic Guide

Custom ListView [Base Adapter]

Basics A scrollable list of places= Tutorial Create a new android project Layouts Demo Create a layout named listitem.xml with the content as y

shown. Open the created .java file and change the base class from

Activity to ListActivity. Add the onCreate() method as displayed

Tip: Use android.R.layout.simple_list_item_1instead of creating a separate listitem.xml

AndroidWallet.blogspot.in

Page 84: Android complete basic Guide

BaseAdapter

Basics BaseAdapteracts as the base for all the adapter

implementations. ArrayAdapter<T> is one such example. Some of the common members that must be

implemented by any adapter implementation are • getCount() • getItem() • getItemId() –returns the unique id of the item (primary

key) • getView() –bad, good, better ways

A demo of custom adapter

AndroidWallet.blogspot.in

Page 85: Android complete basic Guide

Question 1- Make a POC for listview. Question 2- Make a POC for Custom listview.

AndroidWallet.blogspot.in

Page 86: Android complete basic Guide

Android Graphics

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 87: Android complete basic Guide

Android Graphics

Basics Drawables Using an image saved in your project resource Using an xml file that defines the Drawable Properties Shape Drawable

AndroidWallet.blogspot.in

Page 88: Android complete basic Guide

Android Graphics

OpenGL Introduction Android graphics are powered by

• A custom 2D graphics library • OpenGL ES 1.0 for higher performance 3D graphics • The most common 2D graphics API’s can be found in

the drawable package. OpenGL API’s are available from the Khronos OpenGL ES

package, plus some android OpenGL utilities.

AndroidWallet.blogspot.in

Page 89: Android complete basic Guide

Android Graphics

What is Drawable A Drawable is a general abstraction for something that can

be drawn. Drawablw class extends to define a variety of specific

kinds of drawable graphics, including BitmapDrawable Shapedrawable PictureDrawable LayoutDrawable etc.. You can also extends these to define your own custom

Drawable objects that behave in unique ways.

AndroidWallet.blogspot.in

Page 90: Android complete basic Guide

Android Graphics

BitmapDrawable A Drawable that wraps a bitmap and can be tiled,

stretched, or aligned. You can create a BitmapDrawable from a file path, an

input stream, through XML inflation, or from a Bitmap object. • android:gravity • android:src

AndroidWallet.blogspot.in

Page 91: Android complete basic Guide

Android Graphics

Shapedrawable A Drawable object that draws primitive shapes. A ShapeDrawable takes a Shape object and manages its

presence on the screen. If no Shape is given, then the ShapeDrawable will default

to a RectShape.

AndroidWallet.blogspot.in

Page 92: Android complete basic Guide

Drawable

Three ways to define Drawable Using an image saved in your project resource. Using an xml file that defines drawable properties. Using the normal class constructors.

AndroidWallet.blogspot.in

Page 93: Android complete basic Guide

Drawable

Using an image A simple way to add graphics by referencing an image file

from your project resource. Supported file types are

• PNG (Preferred) • JPG (acceptable) • GIF (discouraged)

Preferred technique for application icons, logos, or other graphics such as used in a game.

To use an image resource just add your file to the res/drawable/directory of your project.

AndroidWallet.blogspot.in

Page 94: Android complete basic Guide

Drawable

Using an image (conti….) First do the Binding part. ImageView iv= new ImageView Set Image resource. iv.setImageResource(R.drawable.CDAC_image); In layouts

<ImageButton android:id="@+id/imageview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/CDAC_image” />

AndroidWallet.blogspot.in

Page 95: Android complete basic Guide

Drawable

Using an XML Once you’ve define your drawable in XML save the file in

the res/drawable/directory of your project. Then retrieve and instantiate the object by calling

Resource.getDrawable(), passing the resource ID in your XML file.

let’s assume that below is saved as res/drawable/abc.xml <transition Xmlns:android=http://schemas.android.com/apk/res/android>

<item androi:drawable= “@drawable/image_xyz”> </transition>

AndroidWallet.blogspot.in

Page 96: Android complete basic Guide

Drawable

Using an XML (Conti…) Use that previous xml in your java code.

Resources res = mcontext.getResources();

TrasitionDrawable trans =(TrasitionDrawable)res.getDrawable(R.drawable.abc);

Imageview image = (Imageview)findViewById(R.Id.imageview1); Image.SetImageDrawable(trans);

The above code will instantiate the TransitionDrawable and set it as content of an Imageview.

AndroidWallet.blogspot.in

Page 97: Android complete basic Guide

Drawable

Using the normal class constructors. ShapeDrawable

• When you want to dynamically draw some two dimensional graphics.

Use Canvas Class. The Canvas class has its own set of drawing methods that

you can use, like • drawBitmap(...) • drawRect(...) • drawText(...)

AndroidWallet.blogspot.in

Page 98: Android complete basic Guide

New UI Design Patterns

DashBoard Focus on 4-5 most important

section Highlight what’s new

AndroidWallet.blogspot.in

Page 99: Android complete basic Guide

New UI Design Patterns

Quick Action To do common action quickly Bring key, app-wide action

screen Provide ‘Home’ mechanism-

logo or dedicated button

AndroidWallet.blogspot.in

Page 100: Android complete basic Guide

Menus

Basics Menu offers an user with a choice of operations that can be executed. Android offers three types of menus Option Menus

•Icon Menu •Expanded Menu

Context Menu Sub Menu

AndroidWallet.blogspot.in

Page 101: Android complete basic Guide

Menu

Definition Menus are a common user interface component in many types of applications. To provide a familiar and consistent user experience, you should use the Menu APIs to present user actions and other options in your activities Menus should be defined in the xml file rather than creating them in the code.

<?xml version="1.0"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/action_settings" android:icon="@drawable/CDAC_Home" android:id="@+id/action_settings"/> </menu>

AndroidWallet.blogspot.in

Page 102: Android complete basic Guide

Menus

Basics Inflate the menu resource in onCreateOptionsMenu() and handle the onOptionsItemSelected(). In android application menu is one of the important user interface entity which provides some action options for a particular view.

Till API level 10

AndroidWallet.blogspot.in

Page 103: Android complete basic Guide

Menus

Option Menu Displayed when the user presses the menu button Override the onCreateOptionsMenu() to display the Menu Override the onOptionsItemSelected() to handle the menu click

public boolean onCreateOptionsMenu(Menu m){ menu.add(0, MENU_NEW_GAME, 0, "New Game"); menu.add(0, MENU_QUIT, 0, "Quit"); return true; }

AndroidWallet.blogspot.in

Page 104: Android complete basic Guide

Menus

Context Menu A context menu is a floating menu that appears when the user performs a long-click on an element. Displayed when the user presses the item for a long time (long click) Somewhat equivalent to “right click” Register the view for the context menu by calling registerForContextMenu() Override the onCreateContextMenu() for creating the context Menu Override the onContextItemSelected() for handling the click event

AndroidWallet.blogspot.in

Page 105: Android complete basic Guide

Question 1- Make a Applicatin having 5 books details including Name, Price, Author, Rating, Publication ?

AndroidWallet.blogspot.in

Page 106: Android complete basic Guide

Dialog Box

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 107: Android complete basic Guide

User Interface

Dialog Boxes A window that appears in front of the current activity The underlying activity loses focus and the dialog gets all

user interaction Displays messages to the users by grabbing their attention Dialogs are generally used for displaying notifications and

short activities related to the application

AndroidWallet.blogspot.in

Page 108: Android complete basic Guide

User Interface

Diff types of Dialog boxes Android supports these types of Dialogs

• AlertDialog • ProgressDialog • DatePickerDialog • TimePickerDialog • CustomDialog

AndroidWallet.blogspot.in

Page 109: Android complete basic Guide

Dialog

Creation Of Dialog Life cycle is managed by the framework Activity.showDialog(int) is used to launch a dialog box

• The parameter is the dialog id that is used to identify a specific Dialog

Activity.onCreateDialog() is invoked to create the dialog instance upon the call of showDialog() Activity.onPrepareDialog() is invoked just before the dialog is displayed

AndroidWallet.blogspot.in

Page 110: Android complete basic Guide

Dialog

Dismissing of Dialog Activity.removeDialog() dismisses the dialog and removes any internal references to the dialog managed by Activity

• dismiss() from within the dialog object or • dismissDialog(int) from the activity can also be used to dismiss a dialog

The dismiss listener is used to perform some post dismiss operations once the dialog is dismissed

• onDismiss() of the OnDismissListener interface The dialog is said to be cancelled if the user presses the back button or call the cancel() explicitly Implement the OnCancelListener to handle the cancel operations explicitly

AndroidWallet.blogspot.in

Page 111: Android complete basic Guide

Dialog

Alert Dialog An AlertDialog is an extension of Dialog class Its one of the most widely used dialog type Can be created with any of the following features

•A Title •Message •One, Two or Three Buttons •A list of selectable items (with optional checkboxes or radio buttons)

AlertDialog is created by using the AlertDialog.Builder Subclass Use the builder to construct the dialog Call the create from the builder to create the dialog.

AndroidWallet.blogspot.in

Page 112: Android complete basic Guide

Dialog

Adding Buttons Buttons can be added to the dialog using the set +/- Button() on the builder object.

.setPositiveButton("O,K", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MainActivity.finish();} }) .setNegativeButton(“NO", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Dialog.cancel ();} })

AndroidWallet.blogspot.in

Page 113: Android complete basic Guide

Dialog

Adding a list A list of items can be added by invoking the setItems() of the builder.

Page 114: Android complete basic Guide

Dialog

Progress Dialog ProgressDialog is an extension of AlertDialog Displays progress animation in the form of

• A spinning wheel with undefined progress • A progress bar with defined progress

Initialize the ProgressDialog with the constructor Set the Style (spinner or progress bar) Call the show() method Call the setProgress() to set the new progress

• Valid only for progress bar style progress dialog

Page 115: Android complete basic Guide

Dialog

Custom Dialog An alert dialog with a custom layout. Define a new layout xml Using the inflating service, create an inflated view Set this inflated view as the view of the dialog by calling the setView() of the builder object

Page 116: Android complete basic Guide

Data Storage

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 117: Android complete basic Guide

Option Available Application can store there own private data in the phone system. These data cannot be accessed by other applications

•Security model prevents them Some of the options available are

• Preferences • Files • Databases

Sharing is done by implementing ContentProvider (CP) • Discussed later…

Data Storage - Parts

AndroidWallet.blogspot.in

Page 118: Android complete basic Guide

Preferences Preferences are used to store the simple application state in the form of key / value pairs These data include

o Application configuration o User preferences such as

• Selected music theme • Preferred background color • Highest score so far etc…

getSharedPreference() method is invoked to create or modify the shared preference Shared Preference is shared by all the components of the application

Data Storage - Parts

AndroidWallet.blogspot.in

Page 119: Android complete basic Guide

To get a SharedPreferences object getSharedPreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter. getPreferences() - Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name.

Data Storage - Parts

AndroidWallet.blogspot.in

Page 120: Android complete basic Guide

Files It’s a good practice to use preferences and databases to store app data But there are times where a direct file I/O is required. Like the binary state of the game Storing of the modified image from the image editor Recording a FM broadcasting* … The activity class provides the following methods

• openFileOutput() • openFileInput()

Data Storage - Parts

AndroidWallet.blogspot.in

Page 121: Android complete basic Guide

If the file exist while creating, it will be overwritten The Context.MODE_APPEND is used to append to an existing file. The files created by default will be accessed only by the app that created it. The sharing of files can be enabled by specifying the constants

• Context.MODE_WORLD_READABLE • Context.MODE_WORLD_WRITABLE

A more standard way of sharing the data is through the usage of Content Providers

Data Storage - Files

AndroidWallet.blogspot.in

Page 122: Android complete basic Guide

Context.MODE_WORLD_READABLE This constant was deprecated in API level 17. Creating world-readable files is very dangerous, and likely to cause security holes in applications. It is strongly discouraged; instead, applications should use more formal mechanism for interactions such as ContentProvider , BroadcastReceiver , and Service. There are no guarantees that this access mode will remain on a file, such as when it goes through a backup and restore. File creation mode: allow all other applications to have read access to the created file.

Data Storage - Parts

AndroidWallet.blogspot.in

Page 123: Android complete basic Guide

DataBase Android provides the following structured storage Models Databases

• Uses SQLite relational database • Every application can create and manage its own database

Content Providers • Provides generic and well defined interface for using and sharing data

Data Storage - Parts

AndroidWallet.blogspot.in

Page 124: Android complete basic Guide

SQLite SQLite is a well known relational databases It is

• Open Source • Standards complaint • Light-Weight • Single-Tier

It is implemented as a compact C library and included in the Android’s software stack.

Data Storage - Parts

AndroidWallet.blogspot.in

Page 125: Android complete basic Guide

SQLite Being a library, SQLite becomes a part of the application that created it reducing

• External Dependencies • Minimize Latencies • Simplifies Transaction Locking and Synchronization

SQLite is has been a choice for many consumer electronics devices

• MP3 player, iPhone, iPod Touch and now Android Visit the official site of SQLite

• http://www.sqlite.org • Android docs doesn’t include complete documentation of SQLite, visit the sqlite site instead

Data Storage - Parts

AndroidWallet.blogspot.in

Page 126: Android complete basic Guide

ContentValues and Cursor ContentValue is used to insert new rows into the table Each CV object represents a single table row as a map of columns and their values Queries in Android are represented as Cursor object. Cursors provides managed way of controlling the row position in the result set of the query

Data Storage - Parts

AndroidWallet.blogspot.in

Page 127: Android complete basic Guide

Cursor Some of the navigational methods provided by cursor

• moveToFirst() • moveToNext() • moveToPrevious() • moveToLast() • getCount() • getColumnName()

Please refer the SDK documentation for the complete list of Methods Android simplifies the management of cursors lifetime by implementing two apis

• startManagingCursor() • stopManagingCursor()

Data Storage - Parts

AndroidWallet.blogspot.in

Page 128: Android complete basic Guide

Working with SQLite Database Implementing a DB helper The SQLiteOpenHelper is an abstract class used to implement the best practices for

• Creation • Opening • Updgrading of databases

By implementing the DB helper, the logic creating or upgrading the database before it is opened. The DB helper class overrides the constructor, onCreate and onUpgrade methods of the SQLiteOpenHelper class

Data Storage - Parts

AndroidWallet.blogspot.in

Page 129: Android complete basic Guide

Working with SQLite Database (Cont..) To use the DB helper, create the instance of the DB helper class by passing the context, database name, current version and the CursorFactory (or null for default) Call the getReadableDatabase() / getWriteableDatabase() to get the readable or the writeable instance of the database

Data Storage - Parts

AndroidWallet.blogspot.in

Page 130: Android complete basic Guide

Inserting Data The writeable DB allows the rows to be inserted, updated or deleted. Create an instance of ContentValue class to insert a new row into the target database Call the put() passing the column name and its value.

• Check out for the various overloads of the put() method Repeat this for all the columns of the table.

Data Storage - Parts

AndroidWallet.blogspot.in

Page 131: Android complete basic Guide

Inserting Data Process Call the insert() on the SQLite database instance The updation is also done in the similar fashion using the update() method but a “where” condition has to be specified Without the where clause. Deletion is done by calling the delete() method with a “where” condition

Data Storage - Parts

AndroidWallet.blogspot.in

Page 132: Android complete basic Guide

SQLite The following data types are supported in SQLite

• NULL • INTEGER • REAL (double) • TEXT • BLOB (Binary large object)[store bin data]

The types are dynamically typed while reading or writing in the application

Data Storage - Parts

AndroidWallet.blogspot.in

Page 133: Android complete basic Guide

Querying Each SQLite database query returns a Cursor object Letting android to manage the resources more efficiently To execute the query, invoke the query method with the following parameters

•A boolean to specify the distinct results or not •The name of the table •A projection, list to columns to include in the result set •A where clause •A array of selection args to replace the “?” (parameterized query) •A group by clause •A having filters •A order by expression •A limit of rows to return

Data Storage - Parts

AndroidWallet.blogspot.in

Page 134: Android complete basic Guide

Querying Method public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) Query the given table, returning a Cursor over the result set.

Data Storage - Parts

AndroidWallet.blogspot.in

Page 135: Android complete basic Guide

Query – Extracting data The moveTo_ABC methods can be used to position the cursor at a particular row. The get_ABC method can be used to extract the value by passing the column name Cursor c = db.query("keywords", null, null, null, null, null, null); /*if (c.moveToFirst()) { String key = c.getString(c.getColumnIndex("name")); Toast.makeText(this, key, Toast.LENGTH_LONG).show(); }*/

Data Storage - Parts

AndroidWallet.blogspot.in

Page 136: Android complete basic Guide

Broadcast Notification

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 137: Android complete basic Guide

Broadcast Listeners

Notifications Notify the user

• From a component that is not showing any UI Means

• Show something in the status bar • Play some sound • Vibrate the phone

AndroidWallet.blogspot.in

Page 138: Android complete basic Guide

Broadcast Listeners

Broadcast Notification Are essentially “events’

• That the applications can listen to System generated

• Low battery • Ac plugged in or plugged out • Picture taken

Custom broadcast (generated by apps) • File download completed • Sms received

AndroidWallet.blogspot.in

Page 139: Android complete basic Guide

Broadcast Listeners

A broadcast receiver (short receiver) is an Android component which allows you to register for system or application events. All registered receivers for an event will be notified by the Android runtime once this event happens.

Page 140: Android complete basic Guide

Broadcast Listeners

Broadcast Receivers It is for capture SMS receive event.

AndroidWallet.blogspot.in

Page 141: Android complete basic Guide

Broadcast Notifications

Examples For instance, a Broadcast receiver triggers battery Low notification that you see on your mobile screen. Other instances caused by a Broadcast Receiver are new friend notifications, new friend feeds, new message etc. on your Facebook app. In fact, you see broadcast receivers at work all the time. Notifications like incoming messages, WiFi Activated/Deactivated message etc. are all real-time announcements of what is happening in the Android system and the applications.

AndroidWallet.blogspot.in

Page 142: Android complete basic Guide

Broadcast Notifications

Classes of Broadcasts The two major classes of broadcasts are: 1) Ordered Broadcasts: These broadcasts are synchronous, and

therefore follow a specific order. The order is defined using android: priority attribute. The receivers with greater priority would receive the broadcast first. In case there are receivers with same priority levels, the broadcast would not follow an order.

2) Normal Broadcasts: Normal broadcasts are not orderly. Therefore, the registered receivers often run all at the same time. This is very efficient, but the Receivers are unable to utilize the results. Sometimes to avoid system overload, the system delivers the broadcasts one at a time, even in case of normal broadcasts. However, the receivers still cannot use the results.

AndroidWallet.blogspot.in

Page 143: Android complete basic Guide

Broadcast Notifications

Difference between Activity Intent and Broadcasting Intent

You must remember that Broadcasting Intents are different from the Intents used to start an Activity or a Service (discussed in previous Android Tutorials). The intent used to start an Activity makes changes to an operation the user is interacting with, so the user is aware of the process. However, in case of broadcasting intent, the operation runs completely in the background, and is therefore invisible to the user.

AndroidWallet.blogspot.in

Page 144: Android complete basic Guide

Broadcast Notifications

Implementing the Broadcast Receiver You need to follow these steps to implement a broadcast receiver: 1) Create a subclass of Android’s BroadcastReceiver 2) Implement the onReceive() method: In order for the notification to be sent, an onReceive() method has to be implemented. Whenever the event for which the receiver is registered occurs, onReceive() is called. For instance, in case of battery low notification, the receiver is registered to Intent.ACTION_BATTERY_LOW event. As soon as the battery level falls below the defined level, this onReceive() method is called.

AndroidWallet.blogspot.in

Page 145: Android complete basic Guide

Broadcast Notifications

OnReceive Following are the two arguments of the onReceive() method: Context: This is used to access additional information, or to start services or activities. Intent: The Intent object is used to register the receiver.

AndroidWallet.blogspot.in

Page 146: Android complete basic Guide

Broadcast Notifications

Broadcast Receiver Example

AndroidWallet.blogspot.in

Page 147: Android complete basic Guide

Multimedia

AndroidWallet.blogspot.in For More Code & Data go to:-

Page 148: Android complete basic Guide

Multimedia Framework

Framework Visit the android-docs/dev guide/appendix/supported media formats The android.media package supports the following classes

• AsyncPlayer: Plays the audio is a separate thread • MediaPlayer: Plays audio and video • MediaRecorder: Records audio and video • JetPlayer: Adds sound support for the apps

AndroidWallet.blogspot.in

Page 149: Android complete basic Guide

Multimedia Framework

Features The multi-media features of the android platform falls in three categories

• Still Image (captured from a camera) • Audio (Recording and Playback using Mic) • Video (Recording and Playback using Camera and Mic)

AndroidWallet.blogspot.in

Page 150: Android complete basic Guide

Multimedia

Camera Still images are captured using the Camera

• android.hardware.Camera class Uses SurfaceView to show the preview of the camera SurfaceView provides a dedicated drawing surface embedded inside a view hierarchy SurfaceView takes care of placing the surface at the correct location of the screen The surface is z-ordered.

• The surface is behind the window holding the surface view

AndroidWallet.blogspot.in

Page 151: Android complete basic Guide

Multimedia Framework

Surface View

AndroidWallet.blogspot.in

Page 152: Android complete basic Guide

Add Content

Thank you

AndroidWallet.blogspot.in For More Code & Data go to:-