SlideShare a Scribd company logo
Basic Programming
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Android applications development process
Day 1
Day 1 - 4
Day 5-6
Day 5-6
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
AndroidVersion
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Application Design
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
UI Overview
1. Main Action Bar (API 11)
2.View Control
3. Content Area
4. Split Action Bar (API 11)
5. Options Menu
5
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Fixed Tab SpinnerNavigation Drawers
Application Structure
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Fixed Tabs : Movies ,Twitter
Fixed Tabs
- ต้องการเน้นให้ผู้ใช้เห็นข้อมูลหน้าอื่น ๆ
- ใช้เมื่อต้องสลับหน้าจอ(View) บ่อย ๆ
- จํานวน Top LevelView ไม่ควรเกิน 3-5
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Scrollable Tabs : Google Play Store
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Stacked Tabs :You Tube
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Gmail
Holo Light
Setting
Holo Dark
Talk in
Holo Light with Dark
action bar
Theme (ice cream sandwich :API 15)
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Metrics and Grid
Button ~48dp
Gap ~8 dp
Size should be specified in dp (density-independent pixels ) do not use = px (pixel)
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Font
Font size should be sp (scale-independent pixels)
do not use = pt (point)
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
AndroidManifest.xml
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<activity
android:name="MainActivity"
android:label="@string/app_name"
android:configChanges = "orientation|keyboard">
<!-- android:screenOrientation ="portrait" -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.INTERNET" />
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Styles and Themes
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello" />
<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
icon name
Asset Type Prefix Example
Icons ic_ ic_star.png
Launcher icons ic_launcher ic_launcher_calendar.png
Menu icons and Action Bar icons ic_menu ic_menu_archive.png
Status bar icons ic_stat_notify ic_stat_notify_msg.png
Tab icons ic_tab ic_tab_recent.png
Dialog icons ic_dialog ic_dialog_info.png
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Android Drawables (www.androiddrawables.com)
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Eclipse Shortcuts
Ctrl + Shift + Space : Show method parameter
Fn + Cmd + F11 : Run
Cmd + i : Correct Code Indentation
Rotate Device : Fn(F12) + Control
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application : Step 1
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application : Step 2
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application : Step 3
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application : Step 4
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create Android Application : Step 5
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Activity
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Activity
Setting
Activity
Fullscreen
Activity
Login
Activity
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create New Activity : Step 1
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create New Activity : Step 2
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create New Activity : Step 3
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Create New Activity : Step 4
Add 3 Blank Activity
- FirstActivity
- WebViewActivity
- DialogActivity
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Login Activity
Add New Login Activity
-LoginActivity.java
-activity_login.xml
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Settings Activity
Add New Settings Activity
-SettingsActivity.java
-activity_settings.xml
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menu
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menu
Options Menu
(< API 10)
Action Bar
(> API 11)
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menu : edit main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_login"
android:orderInCategory="90"
android:showAsAction="ifRoom"
android:title="Login"/>
<item
android:id="@+id/action_about"
android:icon="@drawable/ic_launcher"
android:orderInCategory="91"
android:showAsAction="ifRoom"
android:title="About"/>
</menu>
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menu : Add Custom Menu : MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
//add custom menu
menu.add("Save")
	 .setIcon(android.R.drawable.ic_menu_save)
	 .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
	 menu.add("Search")
	 .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
	 menu.add("Gallery")
	 .setIcon(android.R.drawable.ic_menu_gallery)
	 .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
	 return true;
}
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menu : edit MainActivity.java
public boolean onOptionsItemSelected(MenuItem item) {
	 	 switch (item.getItemId()) {
	 	 case R.id.action_settings:
	 	 	 startActivity(new Intent(this, SettingsActivity.class));
	 	 	 return true;
	 	 case R.id.action_login:
	 	 	 startActivity(new Intent(this, LoginActivity.class));
	 	 	 return true;
	 	 case R.id.action_about:
	 	 	 startActivity(new Intent(this, WebViewActivity.class));
	 	 	 return true;
	 	 default:
	 	 	 return super.onOptionsItemSelected(item);
	 	 }
	 }
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Menus
Floating context menu Contextual action bar Checkable menu Popup Menu
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
WebView
Add New Blank Activity
-WebViewActivity.java
-activity_webview.xml
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Progress Bar
Progress bars
Activity bar
progressBarStyleHorizontal progressBarStyleLarge
progressBarStyle
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
Add Permission :AndroidManifest.xml
WebView : activity_webview.xml
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" />
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
style="?android:attr/progressBarStyle"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleHorizontal"
<uses-permission android:name="android.permission.INTERNET"/>
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
WebView : WebViewActivity.java
String urlString = "http://www.ibluecode.com" ;
WebView webView = (WebView) findViewById(R.id.webView1);
webView.loadUrl(urlString);
WebSettings webSettings = webView.getSettings();
	 webSettings.setJavaScriptEnabled(true);
final ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1);
	 webView.setWebViewClient(new WebViewClient(){
	 @Override
	 public void onPageStarted(WebView view, String url, Bitmap favicon) {
	 	 progressBar.setProgress(0);
	 	 progressBar.setVisibility(View.VISIBLE);
	 }
	 @Override
	 public void onPageFinished(WebView view, String url) {
	 	 progressBar.setProgress(100);
	 	 progressBar.setVisibility(View.GONE);
	 }
	 @Override
	 public boolean shouldOverrideUrlLoading(WebView view, String url) {
	 	 view.loadUrl(url);
	 	 return true;
	 }
});
}
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13
WebView : WebViewActivity.java
String urlString = "http://www.ibluecode.com" ;
//
Intent intent = getIntent();
if( intent.getExtras() != null)
{
	 urlString = intent.getExtras().get("url").toString() ;
}
//
WebView webView = (WebView) findViewById(R.id.webView1);
webView.loadUrl(urlString);
WebSettings webSettings = webView.getSettings();
	 webSettings.setJavaScriptEnabled(true);
final ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1);
	 webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
	 progressBar.setProgress(0);
	 progressBar.setVisibility(View.VISIBLE);
	 }
	 @Override
	 public void onPageFinished(WebView view, String url) {
	 	 progressBar.setProgress(100);
	 	 progressBar.setVisibility(View.GONE);
	 }
	 @Override
	 public boolean shouldOverrideUrlLoading(WebView view, String url) {
	 	 view.loadUrl(url);
	 	 return true;
	 }
});
}
Get Data from Intent
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111
Monday, May 27, 13

More Related Content

PPT
PPTX
Introduction to Android and Android Studio
KEY
Android Development: The Basics
PPTX
My presentation on Android in my college
PPTX
Android seminar ppt
PPTX
Android ppt
PPTX
Android application developement seminar
PDF
Android System Developement
Introduction to Android and Android Studio
Android Development: The Basics
My presentation on Android in my college
Android seminar ppt
Android ppt
Android application developement seminar
Android System Developement

Viewers also liked (20)

PDF
Android application development
PPTX
basics of c++
PPT
Android Programming Basic
PDF
Leveraging Android for the Internet of Things with Eclipse M2M
PPTX
Fundamentals of information technology
PDF
Android App Development Intro at ESC SV 2012
PDF
Android Sliding Menu dengan Navigation Drawer
PPTX
Introduction to Android Development
PPT
Advertising on the mobile phone
ODP
Introduction to Android App Development
PDF
Kenalan Dengan Firebase Android
PPTX
Introduction to Android Development: Before Getting Started
PPTX
Android development basic _ZuoSyuanWang
PPT
Penting nya Toko online Bagi UKM (usaha kecil menengah)
PDF
Android development - the basics, MFF UK, 2014
PDF
Android Fast Track CRUD Android PHP MySql
PDF
Belajar Android PHP MySQL Login dengan Volley
PDF
LiFi Technology - Unfolding Future
PDF
手機自動化測試和持續整合
PDF
Belajar Android Membuat Katalog Produk
Android application development
basics of c++
Android Programming Basic
Leveraging Android for the Internet of Things with Eclipse M2M
Fundamentals of information technology
Android App Development Intro at ESC SV 2012
Android Sliding Menu dengan Navigation Drawer
Introduction to Android Development
Advertising on the mobile phone
Introduction to Android App Development
Kenalan Dengan Firebase Android
Introduction to Android Development: Before Getting Started
Android development basic _ZuoSyuanWang
Penting nya Toko online Bagi UKM (usaha kecil menengah)
Android development - the basics, MFF UK, 2014
Android Fast Track CRUD Android PHP MySql
Belajar Android PHP MySQL Login dengan Volley
LiFi Technology - Unfolding Future
手機自動化測試和持續整合
Belajar Android Membuat Katalog Produk
Ad

Similar to Android Basic Development Day 1 Introduction & ADT (20)

PPTX
Andorid
PPT
eyeryeryeryeryeyeyeryeryyerye13872085.ppt
PPTX
Andorid
PDF
Android Application Development Online Training.pdf
DOC
Android Application DevlopmentManual-1.doc
PDF
Android course in pune
PDF
Top Tips for Android UIs - Getting the Magic on Tablets
PDF
Android Basic Components
PPT
Android Introduction
PPTX
PPT
Android activity, service, and broadcast recievers
PPT
MD-IV-CH-ppt.ppt
PDF
Getting Started with Android - OSSPAC 2009
PPT
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
DOC
Android App Dev Manual-1.doc
DOCX
Android Basic Tutorial
PDF
Android Workshop 2013
PDF
Android basic 2 UI Design
PPT
Android activity, service, and broadcast recievers
PDF
Androidoscon20080721 1216843094441821-9
Andorid
eyeryeryeryeryeyeyeryeryyerye13872085.ppt
Andorid
Android Application Development Online Training.pdf
Android Application DevlopmentManual-1.doc
Android course in pune
Top Tips for Android UIs - Getting the Magic on Tablets
Android Basic Components
Android Introduction
Android activity, service, and broadcast recievers
MD-IV-CH-ppt.ppt
Getting Started with Android - OSSPAC 2009
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
Android App Dev Manual-1.doc
Android Basic Tutorial
Android Workshop 2013
Android basic 2 UI Design
Android activity, service, and broadcast recievers
Androidoscon20080721 1216843094441821-9
Ad

More from Eakapong Kattiya (9)

PDF
(31 July 2013) iOS Basic Development Day 2 Human interface design
PDF
Android basic 4 Navigation Drawer
PDF
Android basic 3 Dialogs
PDF
Evrdi : Social Diary ( iOS and Android )
PDF
iOS Basic Development Day 2 - Objective-C 2.0 & iOS Framework
PDF
(1 July 2013) iOS Basic Development Day 5 - Submit to App Store
PDF
Iphone developer advance twitter
PDF
iOS Advance Development - Social Media
PDF
Iphone developer advance location based
(31 July 2013) iOS Basic Development Day 2 Human interface design
Android basic 4 Navigation Drawer
Android basic 3 Dialogs
Evrdi : Social Diary ( iOS and Android )
iOS Basic Development Day 2 - Objective-C 2.0 & iOS Framework
(1 July 2013) iOS Basic Development Day 5 - Submit to App Store
Iphone developer advance twitter
iOS Advance Development - Social Media
Iphone developer advance location based

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
KodekX | Application Modernization Development
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Advanced methodologies resolving dimensionality complications for autism neur...
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation

Android Basic Development Day 1 Introduction & ADT

  • 1. Basic Programming by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 2. Android applications development process Day 1 Day 1 - 4 Day 5-6 Day 5-6 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 3. AndroidVersion by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 4. Application Design by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 5. UI Overview 1. Main Action Bar (API 11) 2.View Control 3. Content Area 4. Split Action Bar (API 11) 5. Options Menu 5 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 6. Fixed Tab SpinnerNavigation Drawers Application Structure by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 7. Fixed Tabs : Movies ,Twitter Fixed Tabs - ต้องการเน้นให้ผู้ใช้เห็นข้อมูลหน้าอื่น ๆ - ใช้เมื่อต้องสลับหน้าจอ(View) บ่อย ๆ - จํานวน Top LevelView ไม่ควรเกิน 3-5 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 8. Scrollable Tabs : Google Play Store by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 9. Stacked Tabs :You Tube by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 10. Gmail Holo Light Setting Holo Dark Talk in Holo Light with Dark action bar Theme (ice cream sandwich :API 15) by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 11. Metrics and Grid Button ~48dp Gap ~8 dp Size should be specified in dp (density-independent pixels ) do not use = px (pixel) by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 12. Font Font size should be sp (scale-independent pixels) do not use = pt (point) by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 13. AndroidManifest.xml <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="17" /> <activity android:name="MainActivity" android:label="@string/app_name" android:configChanges = "orientation|keyboard"> <!-- android:screenOrientation ="portrait" --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <uses-permission android:name="android.permission.INTERNET" /> by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 14. Styles and Themes <TextView     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:textColor="#00FF00"     android:typeface="monospace"     android:text="@string/hello" /> <TextView     style="@style/CodeFont"     android:text="@string/hello" /> <?xml version="1.0" encoding="utf-8"?> <resources>     <style name="CodeFont" parent="@android:style/TextAppearance.Medium">         <item name="android:layout_width">fill_parent</item>         <item name="android:layout_height">wrap_content</item>         <item name="android:textColor">#00FF00</item>         <item name="android:typeface">monospace</item>     </style> </resources> by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 15. icon name Asset Type Prefix Example Icons ic_ ic_star.png Launcher icons ic_launcher ic_launcher_calendar.png Menu icons and Action Bar icons ic_menu ic_menu_archive.png Status bar icons ic_stat_notify ic_stat_notify_msg.png Tab icons ic_tab ic_tab_recent.png Dialog icons ic_dialog ic_dialog_info.png by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 16. Android Drawables (www.androiddrawables.com) by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 17. Eclipse Shortcuts Ctrl + Shift + Space : Show method parameter Fn + Cmd + F11 : Run Cmd + i : Correct Code Indentation Rotate Device : Fn(F12) + Control by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 18. Create Android Application by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 19. Create Android Application : Step 1 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 20. Create Android Application : Step 2 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 21. Create Android Application : Step 3 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 22. Create Android Application : Step 4 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 23. Create Android Application : Step 5 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 24. Activity by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 25. Activity Setting Activity Fullscreen Activity Login Activity by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 26. Create New Activity : Step 1 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 27. Create New Activity : Step 2 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 28. Create New Activity : Step 3 by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 29. Create New Activity : Step 4 Add 3 Blank Activity - FirstActivity - WebViewActivity - DialogActivity by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 30. Login Activity Add New Login Activity -LoginActivity.java -activity_login.xml by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 31. Settings Activity Add New Settings Activity -SettingsActivity.java -activity_settings.xml by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 32. Menu by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 33. Menu Options Menu (< API 10) Action Bar (> API 11) by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 34. Menu : edit main.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="always" android:title="@string/action_settings"/> <item android:id="@+id/action_login" android:orderInCategory="90" android:showAsAction="ifRoom" android:title="Login"/> <item android:id="@+id/action_about" android:icon="@drawable/ic_launcher" android:orderInCategory="91" android:showAsAction="ifRoom" android:title="About"/> </menu> android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 35. Menu : Add Custom Menu : MainActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); //add custom menu menu.add("Save") .setIcon(android.R.drawable.ic_menu_save) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add("Search") .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); menu.add("Gallery") .setIcon(android.R.drawable.ic_menu_gallery) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 36. Menu : edit MainActivity.java public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: startActivity(new Intent(this, SettingsActivity.class)); return true; case R.id.action_login: startActivity(new Intent(this, LoginActivity.class)); return true; case R.id.action_about: startActivity(new Intent(this, WebViewActivity.class)); return true; default: return super.onOptionsItemSelected(item); } } by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 37. Menus Floating context menu Contextual action bar Checkable menu Popup Menu by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 38. WebView Add New Blank Activity -WebViewActivity.java -activity_webview.xml by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 39. Progress Bar Progress bars Activity bar progressBarStyleHorizontal progressBarStyleLarge progressBarStyle by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 40. Add Permission :AndroidManifest.xml WebView : activity_webview.xml <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_centerVertical="true" /> <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true"/> style="?android:attr/progressBarStyle" style="?android:attr/progressBarStyleSmall" style="?android:attr/progressBarStyleLarge" style="?android:attr/progressBarStyleHorizontal" <uses-permission android:name="android.permission.INTERNET"/> by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 41. WebView : WebViewActivity.java String urlString = "http://www.ibluecode.com" ; WebView webView = (WebView) findViewById(R.id.webView1); webView.loadUrl(urlString); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); final ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1); webView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progressBar.setProgress(0); progressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { progressBar.setProgress(100); progressBar.setVisibility(View.GONE); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); } by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13
  • 42. WebView : WebViewActivity.java String urlString = "http://www.ibluecode.com" ; // Intent intent = getIntent(); if( intent.getExtras() != null) { urlString = intent.getExtras().get("url").toString() ; } // WebView webView = (WebView) findViewById(R.id.webView1); webView.loadUrl(urlString); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); final ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1); webView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progressBar.setProgress(0); progressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { progressBar.setProgress(100); progressBar.setVisibility(View.GONE); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); } Get Data from Intent by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111 Monday, May 27, 13